Oktaでのユーザーとグループのプロビジョニング
最終検証日:
翻訳: 竹洞 陽一郎
この機能は、Standardプラン、Premiumプラン、Enterpriseプランで利用できます。
Tailscaleは、Oktaと連携するためのSystem for Cross-domain Identity Management(SCIM)に対応しています。
機能
次のプロビジョニング機能に対応しています。
- OktaからTailscaleにユーザーを作成
- OktaからTailscaleのユーザー属性を更新
- Oktaでユーザーを無効化すると、Tailscaleで停止
- OktaからTailscaleへのグループのプッシュ
要件
- Okta Integration Network(英語)からTailscaleアプリをインストールし、設定(英語)して、ドメインでOktaを有効にします。
カスタムアプリ連携(英語)を通じてTailscaleを使っている場合は、その設定をTailscaleアプリとその設定に置き換える必要があります。
- Application username formatにはEmailを使う必要があり、各Oktaユーザーのプライマリメールアドレスは、そのユーザーのアプリケーションユーザー名と同一である必要があります。そうでない場合はエラーになります。
設定手順
次の手順で、Tailscaleでプロビジョニングを有効にします。
プロビジョニングを有効にする
Tailscaleでの作業
SCIM APIキーを生成する
- 管理コンソールのUser managementページのSCIM Provisioningで、Enable Provisioningを選択します。
Okta向けのプロビジョニングの有効化 - 生成されたキーをクリップボードにコピーします。
SCIM APIキーの生成
Oktaでの作業
キーをTailscaleアプリにコピーする
- (任意)Sign OnタブのAdvanced Sign-on Settingsで、接続するTailscaleのインスタンスを選択します。ほとんどのユーザーは、既定のTailscaleを選択したままにします。米国の高コンプライアンスサーバーに接続する必要がある場合は、Tailscale (US high compliance) – must be allowlistedを選択し、Spelldataのサポートにお問い合わせ下さい。
Tailscaleのインスタンスの選択 - ProvisioningタブでIntegrationを選択し、Configure API Integrationを選択します。
Okta管理画面でのSCIM API連携の設定 - Enable API integrationを選択します。生成したキーをAPI Tokenフィールドに貼り付けます。Tailscaleが生成するSCIM APIキーは、大文字と小文字を区別します。
TailscaleのSCIM APIキーによるSCIM API連携の有効化 - Import Groupsチェックボックスがある場合は、チェックを外します。
- Test API Credentialsを選択してSCIM接続を確認し、Saveを選択します。
ユーザー同期を有効にする
- OktaのSign On > Credential Detailsで、Application username formatにEmailを選択します。
Okta管理画面でApplication username formatにEmailを選択 - Provisioning > Settings > To Appで、Create Users、Update User Attributes、Deactivate Usersを有効にし、Saveを選択します。
Okta管理画面でのユーザー同期機能の有効化 - AssignmentsでProvision Userを選択し、以前にアプリケーションに割り当てられたすべてのユーザーがTailscaleにプロビジョニングされるようにします。
Tailscaleへのユーザーのプロビジョニング
グループ同期を有効にする
グループ同期を使うと、tailnetポリシーファイルで、人間が読める名前でOktaのグループを参照できます。
例えば、次のように記述します。
{
"acls": [
{
"action": "accept",
"src": ["group:groupname@example.com"],
"dst": ["*:*"]
},
{
"action": "accept",
"src": ["group:all employees@example.com"],
"dst": ["autogroup:self:*"]
},
{
"action": "accept",
"src": ["group:engineering@example.com"],
"dst": ["tag:logging:*"]
}
]
}
Oktaから同期したグループは、Tailscaleのグループを置き換えるものではありません。
Oktaのグループ同期を使いながら、tailnetポリシーファイルでグループを定義することもできます。
Oktaでの作業
- Applicationsで、Tailscaleアプリを選択します。
- Push GroupsでPush Groupsボタンを展開し、Tailscaleにプッシュするグループを選択します。
Okta管理画面でのグループ同期の有効化 - Saveを選択します。別のグループもプッシュしたい場合は、Save & Add Anotherを選択します。
実際には、Oktaでのグループの変更は数秒でTailscaleに反映される傾向がありますが、保証されてはいません。
Tailscaleでの作業
管理コンソールのAccess controlsページのGroup Syncに、Oktaからプッシュしたグループが表示されます。
プッシュされたグループをアクセスルールで使うには、Copyを選択してルールに貼り付けるか、直接入力します。
"grants": [
{
"src": ["group:engineering@example.com"],
"dst": ["tag:logging"],
"ip": ["*"]
}
]
同期されたグループ名は、小文字として扱われます。
スペースは含められますが、@記号は含められません。
Oktaのグループ名を変更する場合
Oktaでグループの名前を変更すると、そのグループに対するTailscaleのアクセス制御ポリシーは適用されなくなります。
アクセス制御ポリシーは、グループへの参照ではなく、Oktaで設定した名前に依存しています。
Tailscaleはフェイルクローズ(アクセスを拒否する側に倒す動作)となり、管理コンソールにエラーメッセージが表示されます。
グループの名前を変更した場合は、アクセス制御ポリシーのグループを新しいグループ名に更新してください。
意図しない変更だった場合は、Oktaで名前の変更を元に戻すこともできます。
グループ同期を無効にする
Oktaでの作業
- Applicationsで、Tailscaleアプリを選択します。
- Push GroupsでPush Groupsボタンを展開し、Tailscaleへのプッシュをやめるグループの選択を外して、Saveを選択します。
Tailscaleでの作業
- 管理コンソールのUser managementページのSCIM Provisioningで、Disable provisioningを選択し、確認のためにもう一度Disable provisioningを選択します。
- 管理コンソールのAccess controlsページで、プッシュされなくなったグループを参照しないようにルールを更新します。
- Oktaで使っていたSCIM APIキーを残しておく必要がない場合は、キーを失効させます。
既知の制限事項
- 2021年11月より前にOktaをTailscaleのアイデンティティプロバイダとして設定していた場合は、アイデンティティプロバイダを設定し直す必要があります。ユーザーとグループのプロビジョニングを使うには、Oktaの新しいTailscaleアプリを使います。
- OktaでのTailscaleのApplication username formatには、Emailを使う必要があります。
- Tailscaleのグループは、tailnetポリシーファイルで小文字として解析されるため、Oktaでの大文字・小文字の違いは無視されます。
- Oktaのグループには、
@記号を含められません。 - グループの名前が変わると、そのグループに対するアクセス制御ポリシーは適用されなくなり、Tailscaleはフェイルクローズとなります。推奨される対応については、Oktaのグループ名を変更する場合を参照してください。
- Oktaで停止(英語)されたユーザーは、Tailscaleに同期されません。Tailscaleで停止されるのは、Oktaで無効化(英語)されたユーザーか、Tailscaleアプリの割り当てを解除(英語)されたユーザーだけです。
- Oktaで停止されたユーザーは、Tailscaleにログインしたままとなり、そのユーザーのすべてのノードと、アクセス制御ポリシーで付与された権限へのアクセスを維持します。デバイスキーが失効し、Oktaで新しいセッションの再認証がブロックされた時点で、初めてアクセスを失います。
- Oktaでリンクを解除され、Tailscaleに保持されているグループ(英語)と、グループのプッシュを無効にされた(英語)グループは、Tailscaleに同期されません。
- グループ同期を使って、Tailscaleの管理者やその他のユーザーロールを割り当てることはできません。管理できるのは、アクセス制御ポリシーでの権限だけです。