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として送信されるかどうかを識別します。属性logoutEnabled がTrue. に設定されている場合、これは必須属性です |
logoutRequestURL
|
属性logoutEnabled がTrue. に設定されている場合は必須です。ログアウトのリクエストが送信される場所を入力します(HTTPまたはHTTPSを使用)。 |
logoutResponseURL
|
属性logoutEnabled がTrue. に設定されている場合は必須です。(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>