- Auth0をSAMLサービスプロバイダーとして使用する場合(たとえば、SAML接続)
- Auth0をSAML IDプロバイダーとして使用する場合(たとえば、SAML Web Appアドオンで構成されたアプリケーション)
Auth0をSAMLサービスプロバイダーとして使用する場合
これらのシナリオは、Auth0がSAMLサービスプロバイダーである場合に適用されます。つまり、Auth0はSAML接続を作成することによってSAML IDプロバイダーに接続します。SAML認証要求に署名する
Auth0がSAML サービスプロバイダー の場合、Auth0がに送信する認証要求に署名することができます。- [Auth0 Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、 [SAML] を選択します。
- 表示する接続の名前を選択します。
- [Sign Request(要求に署名する)] を見つけて、そのスイッチを有効にします。
- [Sign Request(要求に署名する)] スイッチの下にある証明書をダウンロードし、署名を検証してもらえるようにIdPに提供します。
deflateエンコードの有効化/無効化
デフォルトでは、SAML認証要求はHTTPリダイレクト経由で送信され、deflateエンコードを使用します。これにより、署名がクエリパラメーターに配置されます。 deflateエンコードを無効にするには、Management APIの接続の更新エンドポイントに対してPATCH呼び出しを行い、deflate
オプションをfalse
に設定します。
接続のoptions
オブジェクトを更新すると、options
オブジェクト全体がオーバーライドされます。以前の接続オプションを保持するには、既存のoptions
オブジェクトを取得し、新しいキー/値を追加します。
エンドポイント:https://{yourDomain}/api/v2/connections/{yourConnectionId}
ペイロード:
カスタムキーを使用して要求に署名します
デフォルトでは、Auth0はテナントの秘密鍵を使用してSAML要求に署名します( Sign Request(要求に署名する) トグルが有効になっている場合)。また、独自の秘密鍵/公開鍵のペアを指定して、特定の接続からの要求に署名することもできます。 次のコマンドを使用して、独自の証明書と秘密鍵を生成できます。options
オブジェクトにsigning_key
プロパティを追加する必要があります。
接続のoptions
オブジェクトを更新すると、options
オブジェクト全体がオーバーライドされます。以前の接続オプションを保持するには、既存のoptions
オブジェクトを取得し、新しいキー/値を追加します。
エンドポイント:https://{yourDomain}/api/v2/connections/{yourConnectionId}
ペイロード:
署名付きSAML認証応答を受信する
Auth0がSAML サービスプロバイダー の場合、IDプロバイダーからのすべてのSAML応答に署名して、承認されていないサードパーティによって改ざんされていないことを示す必要があります。 IDプロバイダーから署名証明書を取得し、その証明書をIDプロバイダーからAuth0接続に読み込むことで、応答の署名を検証するようにAuth0を構成する必要があります。- [Auth0 Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、 [SAML] を選択します。
- 表示する接続の名前を選択します。
- X509署名証明書 を見つけ、証明書をアップロードします。
- [Save Changes(変更の保存)] を選択します。
暗号化されたSAML認証アサーションを受信します
Auth0がSAMLサービスプロバイダーの場合、IDプロバイダーから暗号化されたアサーションを受信する必要がある場合があります。これを行うには、テナントの公開鍵証明書をIdPに提供する必要があります。IdPは公開鍵を使用してSAMLアサーションを暗号化し、それをAuth0に送信します。Auth0はテナントの秘密鍵を使用してそれを復号化します。 次のリンクを使用して、異なる形式で公開鍵を取得してください。 IdPが要求する形式の証明書をダウンロードしてください。キーペアを使用して暗号化された応答を復号化します
上記のように、Auth0はデフォルトでテナントの秘密鍵/公開鍵のペアを使用して暗号化を処理します。高度なシナリオで必要な場合は、独自の秘密鍵/公開鍵のペアを指定することもできます。 接続で要求の暗号化と復号化に使用されるキーペアをダッシュボードUIで変更することはできません。そのため、次のペイロードの例に示すように、Management API v2のUpdate a Connection(接続の更新)エンドポイントを使用し、decryptionKey
プロパティをoptions
オブジェクトに追加する必要があります。
接続のoptions
オブジェクトを更新すると、options
オブジェクト全体がオーバーライドされます。以前の接続オプションを保持するには、既存のoptions
オブジェクトを取得し、新しいキー/値を追加します。
エンドポイント:https://{yourDomain}/api/v2/connections/{yourConnectionId}
ペイロード:
SAML IDプロバイダーとしてのAuth0
このシナリオは、Auth0がアプリケーションのSAML IDプロバイダーである場合に適用されます。これは、DashboardでSAML Web Appアドオンが有効になっている アプリケーション によって表されます。SAML応答/アサーションに署名する
Auth0がSAML IDプロバイダーである場合、テナントの秘密鍵を使用してSAMLアサーションに署名し、署名の検証に必要な公開鍵/証明書をサービスプロバイダーに提供します。 SAMLアサーションに署名するには:- Auth0 Dashboard > Applicationsに移動し、表示するアプリケーションの名前を選択します。
- [Settings(設定)] ページの下までスクロールし、 [Show Advanced Settings(詳細設定を表示)] 、 [Certificates(証明書)] ビューの順に選択します。
- [Download Certificate(証明書のダウンロード)] を選択し、署名証明書を受け取る形式を選択します。
- 証明書をサービスプロバイダーに送信します。
- Auth0 Dashboard > Applicationsに移動し、表示するアプリケーションの名前を選択します。
- [Addons(アドオン)] ビューを選択します。
- SAML2 Web アプリを選択して設定を表示し、 [(Settings)設定] コードブロックを見つけます。
-
” ***
signResponse"
* キーを見つけます。コメントを解除(または必要に応じて追加)し、値をtrue
に設定します(デフォルト値はfalse
)。構成はこのようになっているはずです。
SAML応答の署名鍵を変更する
デフォルトでは、Auth0はSAML応答やアサーションに署名するためのテナントに割り当てられた秘密鍵/公開鍵のペアを使用します。非常に特殊なシナリオでは、独自のキーペアを提供する必要がある場合があります。次のようなルールでこれを行うことができます:署名付きSAML認証要求を受信する
Auth0がSAML IDプロバイダーの場合、サービスプロバイダーの秘密鍵で署名された要求を受信できます。Auth0は、公開鍵/証明書を使用して署名を検証します。 署名の検証を構成するには:- 公開鍵を使用してサービスプロバイダーの証明書をダウンロードします。
- Auth0 Dashboard > Applicationsに移動し、表示するアプリケーションの名前を選択します。
- [Addons(アドオン)] ビューを選択します。
- SAML2 Web アプリを選択して設定を表示し、 [(Settings)設定] コードブロックを見つけます。
-
” ***
signingCert"
* キーを見つけます。コメントを解除し(または、必要に応じて追加)、その値をサービスプロバイダーからダウンロードした証明書に設定します。構成はこのようになっているはずです。
暗号化されたSAML認証アサーションを送信します
Auth0がSAML IDプロバイダーである場合は、Actionsを使用して送信するSAMLアサーションを暗号化できます。 サービスプロバイダーから証明書と公開鍵を取得する必要があります。証明書のみを取得した場合は、openssl
を使用して公開鍵を取得できます。証明書のファイル名がcertificate.pem
であると仮定すると、以下のように実行できます。
openssl x509 -in certificate.pem -pubkey -noout > public_key.pem
証明書と公開鍵ファイルを取得したら、それらを文字列に変換してActionで使用する必要があります。Actionは次のようになります。