[認証] ワークスペースを使用して、OAuth および OIDC プロトコルと互換性のある認証システムで SaltStack Config 内の SSO が動作するように構成できます。

OAuth シングル サインオン (SSO) は、以下に示す目的のために、多くの組織が SaltStack Config の実装時に構成する機能です。

  • [ユーザーが同じ ID でサービスにログインするときにかかる時間の短縮。]組織によるいずれかのサービスにログインしたユーザーは、SSO を使用する他のサービスに自動的に認証されます。
  • [パスワードを入力する手間の軽減。]ユーザーが記憶する必要がある認証情報は 1 セットのみで、複数記憶する必要がありません。

OKTA、Google、Microsoft、GitLab、Zendesk、Apple、Keycloak、Salesforce など多くのサービスで、OIDC をサポートする OAuth プロトコルの実装が提供されています。

注: SaltStack Config では現在、OKTA と Google を介した OAuth および OIDC 認証のみがサポートされます。
注: 必要に応じて同時に複数のシステムを使用して、 SaltStack Config のユーザーを認証できます。たとえば、SAML ベースの IdP および LDAP ベースの IdP を使用すると同時に、複数のユーザー認証情報を RaaS サーバにネイティブに保存できます。ただし、 SaltStack Config では、複数の SAML プロバイダまたは複数の LDAP プロバイダを同時に構成することはできません。
表 1. OAuth および OIDC 認証の用語
用語 定義
OAuth

OAuth 2.0 はアクセス委任のためのオープン プロトコル(標準とも呼ばれる)で、ユーザーは ID がセキュリティ トークンによって認証された後、Web サイトに対してアクションを実行することができます。ユーザーがアプリケーションに対して、アクセス認証情報(パスワード)を与えることなく他のサードパーティ アプリケーション上の情報へのアクセスを許可する方法として使用されます。

OAuth は、ブラウザ ベースのシングル サインオン (SSO) です。OAuth では、リソース所有者の承認を得た上で、認証サーバからサードパーティのクライアントにアクセス トークンを発行できます。サード パーティはこのアクセス トークンを使用して、リソース サーバでホストされている保護されたリソースにアクセスします。

Open ID Connect (OIDC)

Open ID Connect (OIDC) は、OAuth 2.0 プロトコル上のシンプルな ID レイヤーです。クライアントは OIDC を使用することにより、認証サーバによって実行される認証に基づいてユーザーの ID を検証できます。また、すべてのアプリケーションからユーザーに関する基本的なプロファイル情報を取得できます。

リソース所有者 リソース所有者とは、アプリケーションにアカウントへのアクセスを許可する権限を持つユーザーです。アプリケーションからユーザーのアカウントへのアクセスは、読み取りアクセスや書き込みアクセスなど、付与された認証の範囲に制限されます。
クライアント クライアントは、ユーザーのアカウントにアクセスする必要があるサードパーティ製アプリケーションで、ここでは SaltStack Config です。
認証サーバ 認証サーバは、保護されているユーザー アカウントと認証情報をホストします。ユーザーの ID を検証し、クライアントにアクセス トークンを発行します。多くの場合、サービスの API を通じてアクセスされます。
リソース サーバ

リソース サーバは、ユーザーの情報へのアクセスに使用される API サーバです。クライアントがアクセス トークンを取得した後で、認証済みの要求を処理します。小規模な展開では、通常、リソース サーバは 1 台のみで、多くの場合、認証サーバと同じコード ベースまたは同じ展開の一部として構築されます。

大規模な展開では、複数のリソース サーバが用意されることがあります。各リソース サーバは明確に独立していますが、すべてが同じ認証サーバを共有します。

OIDC の場合、ユーザーがローカル ユーザー データベースにユーザーとして追加されるためには、まず SaltStack Config にログインする必要があります。ユーザーが初めてログインした後、ユーザーのロールと権限の管理は、認証情報が RaaS サーバの SaltStack Config にローカルに保存されているユーザーと同じように行われます。ユーザーが初めてログインした後、[ロール] ワークスペースを使用して、そのユーザーに適切なロールと権限を割り当てることができます。

OAuth および OIDC と SaltStack Config の連携

ユーザーが OAuth ID を使用して SaltStack Config へのログインを試行する場合は、次の手順を実行します。

  1. サービス リソースへのアクセスに対するユーザーからの認証を SaltStack Config が要求します。
  2. ユーザーが要求を承認すると、SaltStack Config は認証許可を受け取ります。
  3. SaltStack Config は ID の認証を提示することにより、認証サーバ (API) にアクセス トークンを要求します。
  4. アプリケーション ID が認証され、認証許可が有効な場合、認証サーバ (API) は SaltStack Config にアクセス トークンを発行します。
  5. SaltStack Config がリソース サーバ (API) にリソースを要求し、認証のためにアクセス トークンを提示します。
  6. アクセス トークンが有効な場合、リソース サーバ (API) はアプリケーションにリソースを提供し、ユーザーは SaltStack Config へのログインが許可されます。

前提条件

SaltStack Config で OAuth および OIDC を構成する前に、組織の OAuth 2.0 サービス(OKTA または Google)に対する必要なアクセス権があり、アプリケーションを登録するプロセスにある程度慣れていることを確認します。

OAuth サービスの Web サイトで、名前、Web サイトなど、SaltStack Config の基本的な情報を入力します。アプリケーションを登録すると、SaltStack Config に渡す必要があるクライアント シークレットが得られます。

アプリケーションを作成する際に重要なことは、アプリケーションが使用する 1 つ以上のリダイレクト URL を登録することです。リダイレクト URL は、OAuth 2.0 サービスがアプリケーションの承認後にユーザーを戻す場所です。

ID プロバイダの構成

組織で選択された OAuth および OIDC サービスを使用して SSO を設定するには、次のコマンドを実行します。

  1. サイド メニューで [管理] >[認証] の順にクリックします。
  2. [作成] をクリックします。
  3. [構成タイプ] メニューの [OIDC] を選択します。
  4. [名前] フィールドで、この構成にわかりやすい名前を割り当てます。
  5. [OIDC プロバイダ] メニューで、[OKTA] または [Google] を選択します。
  6. 次の必須フィールドに、SaltStack Config インストールに関する情報を入力します。
    フィールド 説明
    ベース URI 組織が SaltStack Config で使用するベース URL。ホスト サーバ アドレスとも呼ばれます。この URL は、FQDN または IP アドレスの形式です(例:https://example.com)。
    API URL ID プロバイダによって提供される API の URL。このフィールドは、ID プロバイダが OKTA の場合にのみ表示されます。
    Key ID プロバイダによって提供されるキー。OKTA では、キーはクライアント ID と呼ばれます。
    シークレット ID プロバイダによって提供されるシークレット。OKTA では、キーはクライアント シークレットと呼ばれます。
  7. [保存] をクリックします。

これで、SaltStack Config 向けの OIDC 構成が完了しました。