メインコンテンツへスキップ
アサーションに加え、SAML と WS-Federation のプロトコル パラメーターもカスタマイズできます。

IDプロバイダーとしてのAuth0

Auth0がとして機能する場合は、Dashboardでアドオンを設定するか、Rulesを使用して、SAMLアサーションをカスタマイズできます。

Dashboard を使用する

  1. Dashboard > Applications > Applications に移動し、表示するアプリケーション名を選択します。
  2. Addons タブを選択します。
  3. SAML2 Web App のトグルを有効にして、設定とオプションを表示します。
    Dashboard Applications Applications Addons Tab SAML2 Web App Settings Tab
  4. Settings タブでは、次のようなカスタマイズを行えます。
    • SAML リクエストのデフォルトの発行者以外のオーディエンスを指定する。
    • 受信者を指定する。
    • プロファイル属性を特定の属性ステートメントにマッピングする。
    • 署名アルゴリズムまたはダイジェストアルゴリズムを変更する。
    • アサーションのみに署名するか、レスポンス全体に署名するかを指定する。

Actions を使用する

Actions を使用すると、SAML レスポンスに対して、より高度または動的なカスタマイズを追加できます。Actions で行ったカスタマイズは、Dashboard の Application Addons ビューで行ったカスタマイズより優先されます。 api.samlResponse オブジェクトは、デフォルトの SAML 属性を上書きしたり、新しい属性を追加したりするために使用します。

例: SAML トークンの有効期限を変更し、UPN を NameID として使用する

exports.onExecutePostLogin = async (event, api) => {
	api.samlResponse.setLifetimeInSeconds(36000);
	if (event.user.upn) {
		api.samlResponse.setAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier', 'upn');
	}
};

例: user_metadata 属性をアサーションに含める

exports.onExecutePostLogin = (event, api) => {
	event.user.user_metadata = event.user.user_metadata || {};
	event.user.user_metadata.color = 'purple';
	api.samlResponse.setAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/color', event.user.user_metadata.color);
};

SAML アサーション属性

以下は、SAML アサーションのカスタマイズに使用できる属性の一覧です。
属性説明
audiencestringSAML アサーションのオーディエンス。デフォルトは SAMLRequest の issuer です。
recipientstringSAML アサーションの受信先 (SubjectConfirmationData) 。デフォルトは、SAMLRequest では AssertionConsumerUrl、SAMLRequest が送信されなかった場合はコールバック URL です。
issuerstringURL 形式で表される SAML IDプロバイダーの一意の識別子。
mappingsobjectAuth0プロファイルとSAMLアサーションの出力属性間のマッピングです。デフォルトのマッピングは上記のとおりです。
createUpnClaimbooleanUPN クレームを作成するかどうかを指定します。デフォルトは true です。
passthroughClaimsWithNoMappingbooleantrue の場合 (デフォルト) 、共通プロファイルにマッピングされていない各クレームは、Auth0 によって出力アサーションにそのまま含まれます。false の場合、それらのクレームはマッピングされません。
mapUnknownClaimsAsIsbooleanpassthroughClaimsWithNoMappingtrue で、これが false (デフォルト) の場合、共通プロファイルにマッピングされていない各クレームに対して、Auth0 は http://schema.auth0.com というプレフィックスを追加します。true の場合は、クレームをそのまま渡します。
mapIdentitiesブール値true の場合 (デフォルト) 、利用可能であれば、プロバイダー (Google、ADFS、AD など) やアクセストークンといった追加情報がトークンに含まれます。
signatureAlgorithm文字列SAML アサーションまたはレスポンスの署名に使用するアルゴリズムです。デフォルトは rsa-sha1 です。
digestAlgorithm文字列SAML アサーションまたはレスポンスのダイジェストを計算するためのアルゴリズム。既定値は sha1 です。
destinationオブジェクトSAML レスポンスの送信先です。指定しない場合は、SAMLRequest があるときはその AssertionConsumerUrl、SAMLRequest がないときはコールバック URL が使用されます。
lifetimeInSeconds整数トークンの有効期限です。デフォルトは 3600 秒 (1 時間) です。
signResponseブール値SAML レスポンスに署名するかどうかを指定します。デフォルトでは、SAML アサーションには署名されますが、SAML レスポンスには署名されません。true の場合は、SAML アサーションではなく SAML レスポンスに署名されます。
nameIdentifierFormatstringデフォルト値は urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified です。
nameIdentifierProbesarrayAuth0 は、この配列内の各属性を順番に試行します。いずれかに値が設定されていれば、それを Subject/NameID として使用します。順序は次のとおりです: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier (mapped from user_id), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress (mapped from email), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name (mapped from name).
authnContextClassRefstringデフォルトは urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified です。
typedAttributesbooleanデフォルトは true です。true に設定すると、要素の xs:type を推定します。型としては xs:stringxs:booleanxs:double xs:anyType があります。false に設定すると、すべての xs:typexs:anyType になります。
includeAttributeNameFormatブール値デフォルトは true です。true に設定すると、属性名に基づいて NameFormat が推定されます。NameFormat の値は urn:oasis:names:tc:SAML:2.0:attrname-format:uriurn:oasis:names:tc:SAML:2.0:attrname-format:basicurn:oasis:names:tc:SAML:2.0:attrname-format:unspecified です。false に設定した場合、アサーション内に属性 NameFormat は設定されません。
logoutオブジェクトSAML ログアウトを制御します。これには 2 つのプロパティを含めることができます:callback (string) は、Auth0 がログアウトリクエストとレスポンスの送信先として使用するサービスプロバイダー (クライアントアプリケーション) のシングルログアウトサービス URL を含み、slo_enabled (boolean) は、Auth0 がセッション終了をサービスプロバイダーに通知するかどうかを制御します。デフォルト値はtrue (サービスプロバイダーに通知する) です。
binding文字列必要に応じて、SAML ログアウト応答で使用するプロトコルバインディングを指定します。デフォルトでは Auth0 は HTTP-POST を使用しますが、"binding""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" を設定すると、HTTP-Redirect に切り替えることができます。
signingCertstring必要に応じて、SAML リクエストの検証に使用する公開鍵証明書を指定します。設定すると、SAML リクエストには署名が必須になります。値の例は "-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n[..all the other lines..]-----END CERTIFICATE-----\n" です。

詳しく見る