管理者・導入担当者向け
顧客組織・OIDC・ライセンスユーザー管理ガイド
「誰をどの会社に所属させるか」「会社のアカウントでどう本人確認するか」「誰にどの製品を使わせるか」を、実際の画面操作に沿って説明します。
前提を理解する
最初に区別する3つの言葉
- 顧客組織は、顧客企業や部署を分けるための箱です。ライセンスそのものは持ちません。
- OIDC接続は、ソフトウェア利用者の本人確認に使います。Usakey管理者のログイン用ではありません。
- ライセンスユーザーへの割当が、実際の利用権です。ユーザー登録、OIDCログイン、グループ所属だけでは製品を利用できません。
OIDCと顧客ポータルは、チーム以上で利用できます。 個人プランでもライセンスユーザーをローカルIDとして登録し、ConsoleまたはManagement APIから割当を管理できます。ローカルIDの利用者は、製品アプリので本人確認してから端末を認証します(個人以上)。顧客ポータルで本人確認して認証トークン(5分間有効)を発行する方法は、OIDCを使うチーム以上です。
前提を理解する
全体の関係
同じ「組織」という言葉でも、Usakeyを契約する自社(契約組織)と、その自社が管理する顧客企業(顧客組織)は別のデータです。
契約組織(自社)
Usakeyを契約している自社の単位。契約、製品、利用ルール、ライセンス、管理者を持ちます
利用者を整理する側
顧客組織(任意)
チーム以上では、顧客組織ごとにOIDC接続、グループ、ライセンスユーザーを分けられます。個人プランでは顧客組織とOIDCを使わず、ローカル台帳で運用します。
製品を利用させる側
製品 → ユーザー単位の利用ルール → ライセンス
ライセンスは、複数人へ割り当てるプールです。1人分の割当が、その人の実際の利用権になります。
| 画面の名称 | 何を表すか | ライセンスを付与するか |
|---|---|---|
| 契約組織設定・課金・契約 | Usakeyを契約している自社(契約組織)と、その契約 | しない |
| 顧客 | ライセンスの発行先・CRM上の顧客情報 | 発行先として記録する |
| 顧客組織 | 顧客企業・部署のユーザーの台帳 | しない |
| OIDC接続 | 顧客のIDプロバイダーとの本人確認設定 | しない |
| ライセンスユーザー | ソフトウェアを使う人の一意なID | 登録だけではしない |
| ユーザー割当 | ライセンスと1人を結ぶ利用権 | ここで付与する |
構成を選ぶ
シナリオを選ぶ
当てはまるものを1つ選び、そのシナリオへ進んでください。シナリオ1から3は、先に共通準備のOIDC接続を設定してください。
プラン上限
個人プランでは、顧客組織とOIDC接続を利用できません。ライセンスユーザーはローカルIDとして台帳・APIで管理し、利用者は製品アプリのメールアドレスでの確認で端末を認証します。チームは顧客組織25件・OIDC 1件、大規模は顧客組織250件・OIDC 3件です。OIDC接続の月額追加はチーム以上で購入できますが、顧客組織の追加購入枠は現在ありません。
構成を選ぶ · シナリオ0
端末固定ライセンスだけで使う
利用者アカウントではなくライセンスキーと端末で管理する場合、顧客組織・OIDC・ライセンスユーザーを登録する必要はありません。このシナリオはすべてのプランで使えます。
- 利用ルールで、「利用者の識別方式」に「ライセンスキー(端末ごとに認証)」を選びます。
- その利用ルールからライセンスを発行します。
- 利用者へライセンスキーを渡し、製品アプリで端末認証します。
設定する · 共通準備
OIDC接続を設定する
OIDC接続は、ソフトウェア利用者を会社のIDプロバイダー()で本人確認し、顧客ポータルへログインさせるための設定です。チーム以上で利用できます。Microsoft Entra ID、Google Workspace、Okta、HENNGE One、CloudGate UNO、GMOトラスト・ログインは登録画面のプリセットから選べます。Auth0など、標準OIDCのDiscoveryを公開しているIdPも同じ手順で登録できます。
1. IdP側でWebアプリを登録する
- IdPの管理画面で、Client Secretを持つWebアプリを登録します(IdPによって「Authorization Code Flow」を使うWebアプリ、または「Confidential Client」と表示されます)。
- Redirect URIへ次のURLを完全一致で登録します。
Redirect URI
https://usakey.jp/portal/oidc/callbackプロダクション環境でこのページを開いたときのURLを使ってください。末尾のスラッシュの有無、HTTPとHTTPSの違い、ホスト名の違いも、すべて不一致になります。
2. プリセットとDiscoveryで入力を省く
登録画面の先頭で「IdP」を選ぶと、そのIdPで必要な準備手順と注意点が表示されます。Endpointの入力を省ける範囲はIdPによって異なります。
| IdP | 入力するのは | Endpointの埋まり方 |
|---|---|---|
| Microsoft Entra ID | ディレクトリ(テナント)ID | ディレクトリ(テナント)IDを入れた時点で3つとも自動で埋まります。 |
| Google Workspace | なし | Issuerが固定のため、選ぶだけで埋まります。 |
| Okta | Oktaドメイン | 組織認可サーバーの値で埋まります。カスタム認可サーバーはDiscoveryを使います。 |
| HENNGE One | Issuer | Issuerを貼り付けて「Discoveryから取得」を押します。 |
| CloudGate UNO | Issuer | Issuerを貼り付けて「Discoveryから取得」を押します。 |
| GMOトラスト・ログイン | Issuer | Issuerを貼り付けて「Discoveryから取得」を押します。 |
「Discoveryから取得」は、入力したに対する /.well-known/openid-configuration をUsakeyのサーバーから読み、Authorization Endpoint・Token Endpoint・JWKS URI・Scopes・Client Secretの送り方を埋めます。
Discoveryが返すissuerが入力値と一致しない場合や、HTTPSでないEndpoint・443番以外のポートを指定したEndpointが含まれる場合は取得しません。UsakeyがIdPへ接続するのはHTTPSの標準ポート(443番)だけです。Client IDとClient Secretは自動では埋まらないため、IdPで発行した値を入力してください。
Google WorkspaceのIssuerは全利用者共通の https://accounts.google.com です。Issuerは契約組織内で一意のため、Google Workspaceの接続は契約組織あたり1件だけ登録できます。複数の顧客組織それぞれのGoogle Workspaceを別接続として登録できません。また、OAuth同意画面が「外部」のままだと個人のGoogleアカウントでも認証が通るため、を有効にする場合は必ず「内部」にしてください。
3. IdPから値を控える
Microsoft Entra IDでは、IDトークンの iss が一定になるテナント固有Endpointを使ってください。common や organizations のように、利用者ごとにIssuerが変わり得るEndpointは、Usakeyの完全一致検証に適しません。
| Usakeyの入力欄 | IdPで確認する値 | 注意 |
|---|---|---|
| Issuer | IDトークンのissと完全一致するURL | 契約組織内で一意です。末尾スラッシュは除いて保存します。 |
| Client ID | 登録したアプリのクライアントID | 利用者へ渡す接続IDとは別のものです。 |
| Client Secret | IdPで発行したシークレット値 | 保存後は再表示できません。 |
| Authorization Endpoint | 認可エンドポイント | 公開ネットワークから到達できるHTTPS URLが必要です。 |
| Token Endpoint | トークンエンドポイント | 標準設定はclient_secret_basicです。 |
| Client Secretの送り方 | token_endpoint_auth_methods_supported | client_secret_basicとclient_secret_postに対応します。Discoveryから取得すると自動で選びます。 |
| JWKS URI | 署名検証用公開鍵のURL | プライベートIPやループバックへの解決は拒否します。 |
4. Usakeyへ登録する
- OIDC接続を開き、「OIDC接続を追加」を押します。
- 顧客組織を使う場合は「対象の顧客組織」を選びます。顧客組織なしで運用する場合は「すべての顧客組織 / 顧客組織なし」のままにします。
- 「IdP」でプリセットを選び、テナントIDやOktaドメインを入力するか、Issuerを貼り付けて「Discoveryから取得」を押します。プリセットにないIdPは、Issuerと3つのEndpointを手入力します。
- Client IDとClient Secretを入力します。「Client Secretの送り方」は通常client_secret_basicのままにします。
- Scopesは通常
openid profile emailとします。openidは必須です。 - (S256)はすべての接続で常に使われるため、操作は不要です。JITを使うかどうかは、次のシナリオで選びます。
- 登録後に「利用者へ渡す接続ID」に表示される
oid_...が、利用者へ渡す接続IDです。 - OIDC接続の詳細の「顧客ポータルで接続を確認」から実際にIdPへ移動し、戻ってこられることを確認します。
OIDC Endpointは、公開DNSからグローバルIPへ解決できるHTTPS URL(443番ポート)に限ります。セキュリティ上の理由で、社内ネットワークのアドレス(プライベートIP・ループバック・リンクローカル)に解決されるIdPには接続できません。専用環境プランは現在新規提供しておらず、既存の専用環境契約でも同じです。
設定する · シナリオ1
1社・顧客組織なしで、会社アカウントを使う
チーム以上で使える、小規模運用の最短構成です。顧客組織を作らず、共通のOIDC接続を使います。顧客組織を作らない場合もOIDCと顧客ポータルを使うため、個人プランでは利用できません。
先にOIDC接続の共通設定を完了してください。
-
1
利用ルール
「利用者の識別方式」を「ユーザー単位(利用者アカウントに割り当て)」にして保存します。
-
2
OIDC接続
「対象の顧客組織」を「すべての顧客組織 / 顧客組織なし」のままにして、共通の接続を登録します。
-
3
ライセンス
ユーザー単位の利用ルールから、ライセンスプールを発行します。
-
4
初回ログイン
JITが有効なら、利用者が接続IDで顧客ポータルへ初回ログインした時点でライセンスユーザーが作成されます。
-
5
ユーザー割当
ライセンス詳細の「割当を管理」で、そのユーザーを選んで割り当てます。
-
6
2段階認証
利用者が顧客ポータルでパスキー(おすすめ)か認証アプリを設定します。
-
7
製品認証
利用者が認証トークンを発行し、製品アプリへ入力します。
JITで作成された直後は割当がないため、顧客ポータルには「割り当て済みライセンスはありません」と表示されます。管理者が割り当てたあと、利用者へ再読込または再ログインを依頼してください。
設定する · シナリオ2
顧客企業ごとにユーザーとSSOを分ける
チーム以上で複数企業を管理するときの標準構成です。顧客組織は利用者の台帳の境界であり、ライセンスの発行先を表す「顧客」とは別のものです。
各企業のIdPを登録する前に、OIDC接続の共通設定で必要な値とRedirect URIを確認してください。
- 顧客組織から「顧客組織を追加」を押し、顧客企業名、外部ID、任意のユーザー上限を入力します。
- 顧客組織の詳細の「OIDC接続を追加」から、その企業のIdPを登録します。
- 手動で登録する場合はOIDC接続の詳細の「ユーザーを追加」を使います。JITの場合は、利用者の初回ログインを待ちます。
- ユーザー単位ライセンスの「割当を管理」で、対象ユーザーへ割り当てます。
- OIDC接続の詳細に表示される接続IDと顧客ポータルURLを、その顧客企業へ案内します。
設定する · シナリオ3
JIT自動登録と事前登録
利用者のアカウントをいつ作るかを選びます。OIDC接続の共通設定を完了したあとに選択してください。
| 方式 | 向いている運用 | 操作順 | 注意 |
|---|---|---|---|
| JIT有効 | まず本人確認し、管理者が後から利用権を承認する | 初回ログイン → ユーザー自動作成 → 管理者が割当 | 初回ログインの時点ではライセンスがありません。割当は自動作成されません。 |
| JIT無効 | 利用開始日までに権限を用意したい | ユーザー事前登録 → 割当 → 初回ログイン | IdPの正確なIssuerとが必要です。 |
事前登録の操作
- IdP管理者から、対象利用者の変わらない
subを取得します。メールアドレスではありません。 - ライセンスユーザーで「ユーザーを追加」を押します。
- 対象のOIDC接続を選ぶとIssuerが補完されます。SubjectへIdPの
subを入力します。 - 登録後、ライセンス詳細から割当を作成します。
設定する · シナリオ4
部署・チームへ一括で割り当てる
- 顧客組織の詳細の「グループ」から「グループを追加」を押します。
- グループの詳細で、同じ顧客組織に所属する有効なユーザーを追加します。
- ライセンス詳細の「割当を管理」を開きます。
- 「ユーザー」は空欄のまま、「割当元グループ」を選びます。
- 必要なら割当期限を指定し、「割り当て」を押します。
設定する · シナリオ5
閉域網でユーザー単位ライセンスを使う
チーム以上では、管理付きの完全オフライン利用ルールにユーザー割当を固定し、最長7日間の署名付き利用ファイルを発行できます。管理なしのオフライン買い切りとは別の方式です。
- ユーザー単位のオフライン利用ルールからライセンスを発行し、対象ユーザーへ割り当てます。
- 対象端末で
.usakeyreqを作成し、管理端末へ移します。 - ライセンス詳細の「インターネットへ接続できない端末で使う」で、「対象のユーザー割当」を選びます。
.usakeyreqを選択して「オフライン利用ファイルを発行」を押します。- 発行された
.usakeylicを対象端末へ戻して読み込みます。ユーザー単位のファイルは、製品アプリが想定する利用者と割当を渡して読み込みます(完全オフライン端末の手順)。
オフライン中は、ユーザーの一時停止や割当の解除を即時反映できません。証明書は7日以内で切れるため、継続して使うには再発行が必要です。顧客ポータルの認証トークンは、このファイル発行時には使用しません。
利用と契約
利用者が本人確認して製品を認証する
利用者が自分で製品アプリを使い始めるまでの流れです。ローカルIDの利用者は製品アプリのメールアドレスでの確認(個人以上)、OIDC接続の利用者は顧客ポータル(チーム以上)で本人確認してから、端末を認証します。
ローカルIDの利用者: メールアドレスで確認する
管理者
台帳に登録して割り当てる
ローカルIDの利用者にメールアドレスを登録し、ユーザー単位のライセンスを割り当てます。
利用者
メールアドレスを入力
製品アプリにライセンスキーと、登録されたメールアドレスを入力します。
利用者
確認コードを入力
メールで届いた6桁のコードを入力します。2段階認証を登録していれば、認証アプリのコード(パスキーの人は承認コード)も入力します。
製品アプリ
端末認証
確認で得たトークンで、その利用者の端末として登録します。
- 管理画面のライセンスユーザー詳細の「メールアドレスでのライセンス確認」に、使えるかどうかと、使えないときの理由(メールアドレスの未登録、割当が無い、一時停止中、プランなど)が出ます。
- 同じメールアドレスを、複数のローカルIDの利用者に登録できません。本人を1人に決められないと、確認コードを送らないためです。
- 2段階認証を登録した利用者には、確認コードのあとに2段階目のコードを求めます。ローカルIDの利用者は顧客ポータルに入れないため、2段階認証はライセンスユーザー詳細で設定します。
- パスキーを使うときは、ライセンスユーザー詳細の「パスキーの登録を依頼」で、登録用のリンクを本人のメールへ送ります(24時間有効・1回限り)。本人がリンクを開いてパスキーを登録すると、リカバリーコードが1回だけ表示されます。
- パスキーの人への確認コードのメールには、パスキーで承認するページへのリンクが入ります。ページで承認すると承認コードが表示され、製品アプリの「認証アプリのコードまたはリカバリーコード」の欄に入力します。承認コードはその確認だけに使え、10分・1回限りです。製品アプリとSDKの変更は要りません。
- 認証アプリの場合は、ライセンスユーザー詳細で設定し、表示される情報を本人へ安全な方法で渡します。
- 条件がそろわないときも、製品アプリには同じ応答が返り、確認コードは送られません。アプリの画面からは理由を区別できないため、届かないときは上の「メールアドレスでのライセンス確認」を確かめてください。
- 製品アプリに、メールアドレスと確認コード(と認証アプリのコード)の入力画面が必要です。送信と応答の検証は、公式SDKの
start_email_verification/confirm_email_verification(Node.jsはstartEmailVerification/confirmEmailVerification。Rust・C ABI・Node.js・Python・Rubyにあります)が行い、2段階認証が必要かどうか(twoFactorRequired)なども結果で分かります。この関数が無いbindingでは、製品アプリがRuntime APIを直接呼び出します(製品アプリ組み込み(Runtime API)の手順)。
OIDC接続の利用者: 顧客ポータルで認証トークンを発行する
OIDCと顧客ポータルを使うため、チーム以上が対象です。ローカルIDの利用者は、上のメールアドレスでの確認を使います。
管理者
接続IDを案内
OIDC詳細のoid_...と顧客ポータルURLを利用者へ渡します。
利用者
会社のアカウントでログイン
接続IDを入力し、IdPで認証します。
利用者
2段階認証を確認
パスキーか認証アプリを設定し、本人を確認します。
利用者
認証トークンを発行
割当済み製品のカードからトークンを発行してコピーします。
製品アプリ
端末認証
ライセンスキーとトークンを使い、利用者の端末として登録します。
- 顧客ポータルを開き、管理者から受け取った
oid_...を入力します。 - 「会社のアカウントで続ける」を押してIdPへ移動し、会社のアカウントでログインします。
- 「認証トークンを発行するには、2段階認証の設定が必要です。」と表示されたら、「2段階認証を設定する」からパスキー(おすすめ)か認証アプリを設定します。
- 割り当て済みライセンスの「5分間有効な認証トークンを発行」を押し、「コピー」を押します。
- 製品アプリの認証画面へ貼り付けます。製品アプリ側では、あらかじめ設定・入力されたライセンスキーと組み合わせて端末認証します。
顧客ポータルで設定できる2段階認証は、パスキーと認証アプリのです。IdP側の多要素認証は、OIDC接続のmetadataでtrust_upstream_mfaをtrueにしたときだけ使えます。その場合、顧客ポータルで2段階認証を設定していない利用者がIdPで多要素認証を済ませてログインすると、2段階認証がIdPでの管理に切り替わり、以後のログインではIdPの多要素認証を毎回求めます。パスキーなど鍵を使った方法だけを認めるrequire_phishing_resistant_mfaと、IdPに認証の強さを求めるrequested_acr_valuesもあります(Management APIのOIDC接続の更新)。
利用と契約
契約種類による違い
サブスクリプション、トライアル、管理付き買い切りでは、消費する枠と端末認証の扱いが変わります。
| 契約種類 | 割当時の枠 | 端末認証 | 運用上の注意 |
|---|---|---|---|
| サブスクリプション | 有効な割当1件につき、月額管理ライセンス1枠 | 管理端末1台につき、クラウド管理端末1枠 | 割当の解除・ユーザーの一時停止を、次回の定期確認で反映できます。 |
| トライアル | 月額管理ライセンス枠を使いません | 各ユーザーの初回端末認証で、トライアル専用枠を消費 | 発行から30日以内に開始します。同一製品・同一ユーザーの再試用は365日制限です。 |
| 管理付き買い切り | 月額管理ライセンス枠を使いません | クラウド管理端末枠を使用 | 発行時に専用枠・クレジットを消費し、定期確認で失効を反映します。 |
ユーザー単位トライアルを複数人で共有する場合: 最初のユーザーの初回端末認証で、ライセンス全体のトライアル期間が始まります。期限を指定しない割当は、同じ終了日時になります。全員へ開始日から満額の日数を提供したい場合は、1ユーザーにつき1つのトライアルライセンスを発行してください。
運用する · ライフサイクル
一時停止・退職・顧客解約の処理
| 目的 | 操作 | 戻したとき |
|---|---|---|
| 一時的に利用を止める | ライセンスユーザー詳細の「一時停止」 | 割当を保持したまま、「再開」で戻ります。 |
| 退職・恒久的な利用終了 | ライセンスユーザー詳細の「利用を終了」 | 「利用を再開」しても、割当とグループへの所属は戻りません。 |
| 1製品だけ止める | 対象ライセンスの割当ページで「割当を解除」 | 必要なら、新しい割当を作ります。 |
| 顧客企業との契約終了 | ユーザーの利用を終了し、割当と端末の認証を解除し、必要ならライセンスを取り消します。そのあとにOIDC接続を停止し、顧客組織を一時停止またはアーカイブします | アーカイブ済みの顧客組織は戻せません。 |
ユーザーの一時停止・利用終了や割当の解除のあと、次回のオンラインの定期確認で製品の利用は拒否されます。ただし、登録端末の記録とクラウド管理端末の枠は自動では解放されません。不要な端末は、顧客ポータルの「この端末を解除」または管理画面から解除してください。
ライセンスの一時停止・取消、端末の認証の強制解除、OIDC接続の変更・停止・Client Secretの変更、ライセンスユーザーの2段階認証の解除など、取り消せない・影響の大きい操作の前には、直近10分以内の本人確認を求めます(2段階認証を登録していれば確認コード、登録していなければパスワード)。
運用する · 保守
Client Secretの変更
- 先にIdP側で新しいClient Secretを発行し、可能なら旧Secretも一時的に有効なままにします。
- OIDC接続の詳細の「Client Secretを切り替える」を開き、新しい値を2回入力します。
- 「新しいSecretへ切り替える」を押します。Usakeyは直ちに新しいSecretだけを使います。
- OIDC接続の詳細の「顧客ポータルで接続を確認」から、実際のログインを確認します。
- 成功後、IdP側で旧Secretを失効させます。
Usakeyは、新旧2つのSecretを同時に保持しません。IdPがSecretの重複有効期間を提供しない場合、切り替え中に短時間ログインできない時間が発生します。
付録
困ったとき
- JITでログインできたのに製品がない
- JITはユーザーだけを作成します。管理者が対象ライセンスの「割当を管理」で利用権を追加してください。
- 接続IDが分からない
- OIDC接続の詳細の「利用者へ渡す接続ID」に表示される oid_... です。IdPのClient IDではありません。
- OIDCログインが失敗する
- Redirect URIの完全一致、Issuer、Client ID、Client Secret、公開HTTPS Endpoint、IDトークンのsub・aud・nonceを確認してください。
- JIT無効でログインできない
- IssuerとSubjectがIdPのissとsubに完全一致するユーザーを、先に登録してください。
- トークン発行ボタンがない
- 有効なライセンス割当と、2段階認証の確認が必要です。ライセンス・ユーザー・割当の状態も確認してください。
- 製品でトークンが拒否される
- 5分を過ぎた、別ライセンス用、割当を解除済み、ユーザーが一時停止中のいずれかの可能性があります。新しいトークンを発行してください(メールアドレスでの確認なら、確認をやり直してください)。
- メールの確認コードが届かない
- ライセンスユーザー詳細の「メールアドレスでのライセンス確認」で、使えるかどうかと理由を確かめてください(メールアドレスの登録、同じアドレスのほかのローカルIDの利用者、割当、一時停止・利用終了、プラン)。条件がそろわないときも製品アプリには同じ応答が返るため、アプリの画面からは区別できません。
- グループへ追加した人に製品が出ない
- グループは継続同期されません。ライセンスの割当ページで、もう一度グループ割当を実行してください。
- 個人プランで顧客組織やOIDCを追加できない
- 仕様どおりです。個人プランでは端末固定を使うか、ライセンスユーザーをローカルIDとして管理し、利用者は製品アプリのメールアドレスでの確認で端末を認証します。顧客組織なしの共通OIDCを含め、OIDCと顧客ポータルが必要な場合はチーム以上へ変更してください。
- 同じIssuerで2つのOIDC接続を作れない
- Issuerは契約組織内で一意です。1つの接続を共通利用するか、IdP側で別Issuerになる構成を用意してください。
- 利用者へ案内が届かない
- 招待メールは自動送信されません。接続ID、顧客ポータルURL、利用開始手順を別途案内してください。
付録