[認証] ワークスペースを使用して、OAuth および OIDC プロトコルと互換性のある認証システムで SaltStack Config 内の SSO が動作するように構成できます。
OAuth および OIDC SSO について
OAuth シングル サインオン (SSO) は、多くの組織が SaltStack Config の実装時に構成する機能です。SSO には、次のような多くのメリットがあります。
- [ユーザーが同じ ID でサービスにログインするときにかかる時間の短縮。]組織によるいずれかのサービスにログインしたユーザーは、SSO を使用する他のサービスに自動的に認証されます。
- [パスワードを入力する手間の軽減。]ユーザーが記憶する必要がある認証情報は 1 セットのみで、複数記憶する必要がありません。
OKTA、Google、Microsoft、GitLab、Zendesk、Apple、Keycloak、Salesforce など多くのサービスで、OIDC をサポートする OAuth プロトコルの実装が提供されています。
OAuth および OIDC と SaltStack Config の連携
ユーザーが OAuth ID を使用して SaltStack Config へのログインを試みる場合
- サービス リソースへのアクセスに対するユーザーからの認証を SaltStack Config が要求します。
- ユーザーが要求を承認すると、SaltStack Config は認証許可を受け取ります。
- SaltStack Config は ID の認証を提示することにより、認証サーバ (API) にアクセス トークンを要求します。
- アプリケーション ID が認証され、認証許可が有効な場合、認証サーバ (API) は SaltStack Config にアクセス トークンを発行します。
- SaltStack Config がリソース サーバ (API) にリソースを要求し、認証のためにアクセス トークンを提示します。
- アクセス トークンが有効な場合、リソース サーバ (API) はアプリケーションにリソースを提供し、ユーザーは SaltStack Config へのログインが許可されます。
OAuth および OIDC 認証の用語
用語 | 定義 |
---|---|
OAuth | OAuth 2.0 はアクセス委任のためのオープン プロトコル(標準とも呼ばれる)で、ユーザーは ID がセキュリティ トークンによって認証された後、Web サイトに対してアクションを実行することができます。ユーザーがアプリケーションに対して、アクセス認証情報(パスワード)を与えることなく他のサードパーティ アプリケーション上の情報へのアクセスを許可する方法として使用されます。 OAuth は、ブラウザ ベースのシングル サインオン (SSO) です。OAuth では、リソース所有者の承認を得た上で、認証サーバからサードパーティのクライアントにアクセス トークンを発行できます。サード パーティはこのアクセス トークンを使用して、リソース サーバでホストされている保護されたリソースにアクセスします。 |
OIDC | Open ID Connect Open ID Connect (OIDC) は、OAuth 2.0 プロトコル上のシンプルな ID レイヤーです。クライアントは OIDC を使用することにより、認証サーバによって実行される認証に基づいてユーザーの ID を検証できます。また、すべてのアプリケーションからユーザーに関する基本的なプロファイル情報を取得できます。 |
リソース所有者 | リソース所有者とは、アプリケーションにアカウントへのアクセスを許可する権限を持つユーザーです。アプリケーションからユーザーのアカウントへのアクセスは、読み取りアクセスや書き込みアクセスなど、付与された認証の範囲に制限されます。 |
クライアント | クライアントは、ユーザーのアカウントにアクセスする必要があるサードパーティ製アプリケーションで、ここでは SaltStack Config です。 |
認証サーバ | 認証サーバは、保護されているユーザー アカウントと認証情報をホストします。ユーザーの ID を検証し、クライアントにアクセス トークンを発行します。多くの場合、サービスの API を通じてアクセスされます。 |
リソース サーバ | リソース サーバは、ユーザーの情報へのアクセスに使用される API サーバです。クライアントがアクセス トークンを取得した後で、認証済みの要求を処理します。小規模な展開では、通常、リソース サーバは 1 台のみで、多くの場合、認証サーバと同じコード ベースまたは同じ展開の一部として構築されます。 大規模な展開では、複数のリソース サーバが用意されることがあります。各リソース サーバは明確に独立していますが、すべてが同じ認証サーバを共有します。 |
構成前の手順
SaltStack Config で OAuth および OIDC を構成する前に、組織の OAuth 2.0 サービス(OKTA または Google)に対する必要なアクセス権があり、アプリケーションを登録するプロセスにある程度慣れていることを確認します。
OKTA または Google で SaltStack Config をアプリケーションとして登録する
OAuth サービスの Web サイトで、名前、Web サイトなど、SaltStack Config の基本的な情報を入力します。アプリケーションを登録すると、SaltStack Config に渡す必要があるクライアント シークレットが得られます。
アプリケーションを作成する際に重要なことは、アプリケーションが使用する 1 つ以上のリダイレクト URL を登録することです。リダイレクト URL は、OAuth 2.0 サービスがアプリケーションの承認後にユーザーを戻す場所です。
ID プロバイダの構成
組織で選択された OAuth および OIDC サービスを使用して SSO を設定するには、次のコマンドを実行します。
- サイド メニューで [管理] >[認証] の順にクリックします。
- [作成] をクリックします。
- [構成タイプ] メニューの [OIDC] を選択します。
- [名前] フィールドで、この構成にわかりやすい名前を割り当てます。
- [OIDC プロバイダ] メニューで、[OKTA] または [Google] を選択します。
- 次のフィールドに、SaltStack Config インストールに関する情報を入力します。
- ベース URI
- API URL(OKTA 構成の場合のみ)
- Key
- シークレット
注: これらのフィールドの詳細については、 OIDC 情報フィールドを参照してください。 - [保存] をクリックします。
これで、SaltStack Config 向けの OIDC 構成が完了しました。
OIDC の RBAC の構成
OIDC の場合、ユーザーがローカル ユーザー データベースにユーザーとして追加されるためには、まず SaltStack Config にログインする必要があります。ユーザーが初めてログインした後、ユーザーのロールと権限の管理は、認証情報が RaaS サーバの SaltStack Config にローカルに保存されているユーザーと同じように行われます。
ユーザーが初めてログインした後、[ロール] ワークスペースを使用して、そのユーザーに適切なロールと権限を割り当てることができます。[ロール] ワークスペースの詳細については、ロールと権限を参照してください。
OIDC 情報フィールド
OIDC 認証情報は、すべてのフィールドが必須です。OIDC 認証構成の情報を次のように入力します。
フィールド | 説明 |
---|---|
名前 | SSE で使用される認証接続の名前。この名前は、[認証] ワークスペースにログインするとサイドバーに表示され、複数の構成を設定する場合は一意である必要があります。 |
OIDC プロバイダ | このメニューから OIDC ID プロバイダを選択すると、プロバイダに固有の設定が表示されます。 |
ベース URI | 組織が SaltStack Config で使用するベース URL。ホスト サーバ アドレスとも呼ばれます。この URL は、FQDN または IP アドレスの形式です(例:https://example.com )。 |
API URL | ID プロバイダによって提供される API の URL。このフィールドは、ID プロバイダが OKTA の場合にのみ表示されます。 |
Key | ID プロバイダによって提供されるキー。OKTA では、キーはクライアント ID と呼ばれます。 |
シークレット | ID プロバイダによって提供されるシークレット。OKTA では、キーはクライアント シークレットと呼ばれます。 |