SAMLアプリケーションの作成およびアクティブ化

この項では、REST APIを使用してSecurity Assertion Markup Language (SAML)アプリケーションを作成し、アクティブ化するリクエストの例を示します。

SAMLアプリケーションの作成

SAMLアプリケーションは、シングル・サインオン用にSAMLをサポートするアプリケーションです。この例では、SAMLアプリケーションを作成するリクエストを作成する方法を示します。

ノート

リクエストでオプションのname属性を使用している場合、値では英数字およびアンダースコア( _ )文字のみを使用するようにしてください。
cat>/tmp/SAMLApp.json << __EOF__
{
  "schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:App"],
  "active": true,
  "displayName": "testSAMLApp",
  "description": "SAML for Portal",
  "basedOnTemplate": {
    "value": "CustomSAMLAppTemplateId"
  },
  "name": "testSAMLPartner",
  "urn:ietf:params:scim:schemas:oracle:idcs:extension:samlServiceProvider:App":
          {
            "signResponseOrAssertion": "Assertion",
            "includeSigningCertificateInSignature": "true",
            "entityId": "IdcsSamlDomain",
            "nameIdFormat": "saml-emailaddress",
            "nameIdUserstoreAttribute": "emails.primary.value",
            "assertionConsumerUrl": "http://<domainURL>/saml2/sp/acs/post",
            "signatureHashingAlgorithm": {
              "value": "SHA-256"
            },
            "logoutEnabled": true,
            "logoutBinding": true,
            "logoutRequestURL": "http://<domainURL>/FederationSampleApp/logout",
            "singleLogoutURL": "http://<domainURL>/FederationSampleApp/logout",
            "logoutResponseUrl": "http://<domainURL>/FederationSampleApp",
            "groupAssertionAttributes": [
              {
                "name": "all",
                "condition": "All Groups"
              }
            ],
            "userAssertionAttributes": [
              {
                "name": "email",
                "userStoreAttributeName": "emails.primary.value"
              },
              {
                "name": "userid",
                "userStoreAttributeName": "userName"
              },
              {
                "name": "firstname",
                "userStoreAttributeName": "name.givenName"
              },
              {
                "name": "lastname",
                "userStoreAttributeName": "name.familyName"
              }
            ]
          }
} 
__EOF__

   curl -X POST 
   -H "Content-type: application/json" 
   -H "Authorization: Bearer <access token value>" 
   --data @/tmp/SAMLApp.json http://<domainURL>/admin/v1/Apps

SAMLアプリケーションに必要なアプリケーション属性

必要なアプリケーション属性 説明
entityId エンティティIDは、SAMLエンティティ(アイデンティティ・プロバイダまたはサービス・プロバイダのいずれか)のグローバル一意名です。通常、値はURLになります。
assertionConsumerUrl アサーション・コンシューマURLは、SAMLアサーション・プロバイダによって送信されるサービス・プロバイダのエンドポイントです。
nameIdFormat この属性は、SAMLアサーションで使用されるName ID形式(電子メール・アドレス、Windowsドメイン修飾名、X.509サブジェクト名など)を表します。サービス・プロバイダおよびアイデンティティ・プロバイダは、Name ID形式を使用して、通信中にサブジェクトを簡単に識別します。
nameIdValue この属性に定義する内容は、指定されたnameIdFormatのタイプによって異なります。この属性は、ログインしているユーザーの識別に使用します。
logoutBinding この属性は、ログアウトのリクエストがRedirectまたはPostとして送信されるかどうかを識別します。属性logoutEnabledTrue.に設定されている場合、これは必須属性です
logoutRequestURL 属性logoutEnabledTrue.に設定されている場合は必須です。ログアウトのリクエストが送信される場所を入力します(HTTPまたはHTTPSを使用)。
logoutResponseURL 属性logoutEnabledTrue.に設定されている場合は必須です。(HTTPまたはHTTPSを使用して)ログアウトのレスポンスが送信される場所を入力します。

nameIdUserstoreAttributeプロパティの構築

nameIdUserstoreAttributeプロパティは、SAMLアサーションのNameID値として使用されるユーザー属性を指定します。

サポートされる値

  • userName

  • emails.primary.value

userStoreAttributeNameプロパティの構築

userStoreAttributeNameプロパティは、userAssertionAtributes複合属性のサブ属性です。userStoreAttributeNameプロパティは、SAMLアサーション属性の値を作成するために使用する必要があるユーザー属性を指定します。

サポートされる値

  • userName

  • name.givenName

  • name.middleName

  • name.familyName

  • emails.primary.value

  • emails[work].value

  • phoneNumbers[home].value

  • phoneNumbers[mobile].value

  • phoneNumbers[work].value

  • title

  • addresses[work].streetAddress

  • addresses[work].locality

  • addresses[work].postalCode

  • addresses[work].region

  • addresses[work].country

SAMLアプリケーションのアクティブ化

この例を使用して、SAMLアプリケーションをアクティブ化するリクエストを作成します。

echo "Activate SAML App"
cat>/tmp/SAMLApp.json << __EOF__
{
        "active" : true,
        "schemas": [
             "urn:ietf:params:scim:schemas:oracle:idcs:AppStatusChanger"
        ]
}
__EOF__

   curl -X PUT 
   -H "Content-type: application/json" 
   -H "Authorization: Bearer <access token value>" 
   --data @/tmp/SAMLApp.json http://domainURL/admin/v1/AppStatusChanger/<appID>