SAMLの設定

SAMLサービスプロバイダー

アプリケーション、特にカスタムアプリケーションは、OpenID Connect(OIDC)やOAuth 2.0などのプロトコルを使用することで、外部IdPに対してユーザーを認証できます。しかし、どちらのプロトコルを使用するようにアプリケーションを作成した場合でも、認証にエンタープライズSAMLプロバイダーを利用する方が良い場合があります。

プロトコル - SAML SPの図

SAML IDプロバイダー

一部のアプリケーション(Salesforce、Box、Workdayなど)では、SAMLプロトコルを使用して外部IdPに対するユーザー認証を行えます。その後、そのアプリケーションを、アプリケーションのSAML IdPとして機能するAuth0と統合できます。アプリケーションユーザーはログインするためにAuth0にリダイレクトされ、Auth0はLDAPディレクトリ、データベース、別のSAML IdPやソーシャルプロバイダーなどのバックエンド認証接続を使用してユーザーを認証できます。ユーザーが認証されると、Auth0はそのことを示すSAMLアサーションをアプリケーションに返します。

プロトコル - SAML IdPの図

以下は、SAMLプロトコルをサポートすることが知られているIdPサービスのリストです。リストに挙げられていないサービスがある可能性もあります。以下のプロバイダーはKantaraによる相互運用性テストに参加しているため、SAML仕様に十分準拠していると考えられます。

  • adAS

  • ADFS

  • Dot Net Workflow

  • Elastic SSO Team & Enterprise

  • Entrust GetAccess & IdentityGuard(サポートされているプロトコルをチェック)

  • EIC(サポートされているプロトコルをチェック)

  • Ilex Sign&go

  • iWelcome

  • NetIQ Access Manager

  • OpenAM

  • RCDevs Open SAMPL IdP

  • Optimal IdM VIS Federation Services

  • Oracle Access Manager(Oracle Identity Federationはこれに吸収合併)

  • PingFederate(IDP Light)

  • RSA Federated Identity(IDP Light)

  • SecureAuth

  • Symplified

  • Tivoli Federated Identity Manager

  • TrustBuilder

  • Ubisecure SSO

  • WSO2 Identity Server

Auth0は、Auth0を使って以下のSAML IDプロバイダーを構成するための具体的な手順を提供しています。

サービスプロバイダーとしてのAuth0

Auth0がSAMLフェデレーションでサービスプロバイダーとして機能する場合、Auth0は、特定のユーザーに対してアカウントを事前に作成しなくても、認証要求をIDプロバイダーにルーティングできます。Auth0は、IDプロバイダーから返されたアサーションを使用して、そのユーザーのユーザープロファイルを作成するために必要な情報を取得できます(このプロセスはJust-In-Timeプロビジョニングと呼ばれることもあります)。詳細は、「複数の接続オプションから選択する」をお読みください。

Auth0では、認証プロセスの前にユーザーアカウントを事前に作成する必要はありませんが、Auth0と統合されたアプリケーションでは必要になる可能性があります。この場合、これを処理するためのオプションがいくつかあります。

  • IDプロバイダーがユーザーを作成した後、アウトオブバンドのプロセスを使用して、アプリケーション(またはAuth0)で付随するユーザーを作成し、そのアプリケーションに必要なユーザープロファイル属性を追加できます。認証後、プロファイルに属性が欠落している場合は、アプリケーションが適切なソースから属性を取得し、Auth0のユーザープロファイルに保管できます。追加の属性は、ユーザーが次回ログインするときに(IDプロバイダーによって追加された属性に加えて)アプリケーションに送信されます。

  • Auth0ルールを使用してAPIを呼び出し、不足している情報を取得して、それをAuth0プロファイルに動的に追加できます(その後、アプリケーションに返されます)。ルールは認証が成功した後に実行され、アプリケーションがプロファイル属性を毎回取得することも、自分で属性をAuth0プロファイルに保存することもできます。

  • Auth0は、IDプロバイダーからアプリケーションに基本的なプロファイル情報を渡すことができ、その後、別のソースから不足している情報を取得します。アプリケーションは、2つの情報セットを使って、ローカルユーザープロファイルを作成します。

Auth0 SAMLP接続の構成の一部としてメールドメインを指定して、選択したユーザーグループを処理するIDPを制御できます。たとえば、X社のAuth0 SAMLP接続の構成にメールドメインのexample.comを追加すると、example.comドメインのメールを持つすべてのユーザーが、X社の特定のIDPによって処理されます。

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

Auth0がSAMLフェデレーションでIDプロバイダーとして機能する場合、ユーザーアカウントは複数の方法で作成できます。

  • LDAPディレクトリ、データベース、または別のSAML IDプロバイダーなどのバックエンド認証システムを使用する。

  • Auth0 Dashboardを使用する。

  • Auth0 Management APIを呼び出す。

  • セルフサービスユーザーサインアップを実装する。

アプリケーションがローカルストアからユーザープロファイル情報を取得するように作成されている場合は、Auth0でアカウントを作成した後にローカルプロファイルを作成する必要があります。これを行うには、次のような方法があります。

  • アプリケーション内でユーザープロファイルを作成するアウトオブバンドのプロセス。

  • 最初のログイン時に実行され、アプリケーションAPIを呼び出してアプリケーションでユーザープロファイルを作成するAuth0ルール。

  • SAMLアサーションの情報に基づいて、ユーザープロファイルを動的に作成するようにアプリケーションを変更する。

Auth0をサービスおよびIDプロバイダーとして使用したSAML SSOのテスト

Auth0は、テスト目的で、SAMLサービスプロバイダーとSAML IDプロバイダーの両方として使用できます。

プロトコル - SAML SPとしてのAuth0とIdPの図

もっと詳しく