1.6. シングルサインオン

シングルサインオン (SSO) は、1 つのリソースに対して認証されたプリンシパルが暗黙的に他のリソースへのアクセスを承認できるようにします。異なるリソースのセットが SSO によってセキュア化された場合、ユーザーはセキュア化されたこれらのリソースのいずれかに初めてアクセスするときのみ認証される必要があります。認証に成功した後、ユーザーに関連するロールが保存され、関連する他のリソースすべての承認に使用されます。これにより、ユーザーは再認証なしで、承認された他のリソースにアクセスできます。

ユーザーがリソースからログアウトした場合や、リソースがプログラムでセッションを無効化した場合、永続化された承認データはすべて削除され、プロセスが再度開始されます。リソースのセッションタイムアウトが発生した場合は、そのユーザーに関連する有効なリソースセッションが他にあれば SSO セッションは無効化されません。SSO は、web アプリケーションやデスクトップアプリケーションでの認証および承認に使用することができます。場合によっては、SSO 実装は認証と承認の両方と統合できます。

SSO 内では、システムの異なる概念や部分を示すために共通の用語がいくつか使用されます。

アイデンティティー管理

アイデンティティー管理 (IDM) とは、1 つ以上のシステムやドメイン全体でプリンシパルとそれらに関連する認証、承認、および特権を管理する概念のことです。同じ概念がアイデンティティーおよびアクセス管理 (IAM) と呼ばれることもあります。

アイデンティティープロバイダー

アイデンティティープロバイダー (IDP) とはエンドユーザーを認証し、そのユーザーのアイデンティティーを信頼できる方法で信頼できるパートナーに対してアサートする、権限のあるエンティティーです。

アイデンティティーストア

アイデンティティープロバイダーには、認証および承認プロセス中に、使用するユーザーの情報を取得するアイデンティティーストアが必要です。データベース、LDAP (Lightweight Directory Access Protocol)、プロパティーファイルなど、あらゆるリポジトリーのタイプをアイデンティティーストアとして使用できます。

サービスプロバイダー

サービスプロバイダー (SP) は、アイデンティティープロバイダーに依存してユーザーの電子クレデンシャル経由でユーザーに関する情報をアサートし、信頼できるユーザークレデンシャルのアサートを基にアクセス制御と伝播を管理します。

クラスター化および非クラスター化 SSO

非クラスターか SSO は、同じ仮想ホストでアプリケーションへの承認情報の共有を制限します。また、ホストの障害発生時の回復性がありません。クラスター化された SSO の場合、複数の仮想ホストのアプリケーション間でデータが共有されるため、障害時の回復性があります。さらに、クラスター化された SSO はロードバランサーからリクエストを受信できます。

1.6.1. サードバーティー SSO 実装

Kerberos

Kerberos はクライアントサーバーアプリケーションのネットワーク認証プロトコルです。秘密鍵暗号方式を使用して、セキュアでないネットワーク上でセキュアな認証を実現します。

Kerberos はチケットと呼ばれるセキュリティートークンを使用します。セキュアなサービスを使用するには、ユーザーはネットワークのサーバーで実行されるサービスであるチケット付与サービス (TGS: Ticket Granting Service) からチケットを取得する必要があります。チケットの取得後、同じネットワークで実行される別のサービスである認証サービス (AS) からサービスチケット (ST) を要求します。その後、ユーザーは ST を使用して希望のサービスに対して認証されます。TGS と AS は、キー配布センター (KDC) と呼ばれるエンクロージングサービス内で実行されます。

Kerberos は、クライアントサーバーデスクトップ環境での使用を目的としているため、通常は web アプリケーションやシンクライアント環境では使用されません。しかし、 デスクトップの認証に Kerberos システムを使用しているため、web アプリケーション用のシステムを作成せずに、既存のシステムを再使用したい組織が多くあります。Kerberos は Microsoft Active Directory では不可欠なもので、Red Hat Enterprise Linux 環境の多くで使用されています。

SPNEGO

SPNEGO (Simple and protected GSS_API negotiation mechanism) は、web アプリケーションで使用するために Kerberos ベースの SSO 環境を拡張するメカニズムを提供します。

web ブラウザーなどのクライアントコンピューター上のアプリケーションが web サーバーの保護されたページにアクセスしようとすると、サーバーは承認が必要であることを伝えます。アプリケーションは KDC から ST を要求します。アプリケーションはチケットを SPNEGO 用にフォーマットされたリクエストにラップし、ブラウザー経由で web アプリケーションに返信します。デプロイされた web アプリケーションを実行している web コンテナーはリクエストをアンパックし、チケットを認証します。認証が正常に行われると、アクセスできるようになります。

SPNEGO は、Red Hat Enterprise Linux 内の Kerberos サービスや、Microsoft Active Directory の不可欠な要素である Kerberos サーバーなど、すべてのタイプの Kerberos プロバイダーと動作します。

Microsoft Active Directory

Active Directory (AD) は Microsoft 社によって開発されたディレクトリーサービスで、Microsoft Windows ドメインでユーザーとコンピューターを認証します。これは Windows Server の一部として提供されます。ドメインを制御する Windows Server を実行しているコンピューターはドメインコントローラーと呼ばれます。Red Hat Enterprise Linux は Active Directory ドメインと統合でき、Red Hat Identity Management、Red Hat JBoss Enterprise Application Platform、およびその他の Red Hat 製品とも統合できます。

Active Directory は、共に動作する 3 つのコアテクノロジーに依存します。

  1. LDAP: ユーザー、コンピューター、パスワード、およびその他のリソースに関する情報を保存します。
  2. Kerberos: ネットワーク上でセキュアな認証を提供します。
  3. ドメインネームサービス (DNS): ネットワーク上のコンピューターおよびその他のデバイスにおける IP アドレスとホスト名との間のマッピングを提供します。