アプリを Manabu2 につなぐ最初の一歩は、アプリを登録してクライアント ID を得ることです。この記事では登録フォームの各項目と、後から変えられない項目について説明します。
登録の手順
- マイページを開き、対象の組織カードにある 「アプリケーション管理へ」 をクリックします。
- 右上の 「アプリを登録」 をクリックします。
- フォームに入力して保存します。
フォームの各項目
アプリ名
利用者に見える名前です。サードパーティ製アプリの場合、サインイン時の確認画面に「〇〇 is asking to use your Manabu2 account.」(〇〇 が Manabu2 アカウントの利用を求めています)と表示されます(現在、確認画面は英語表示です)。利用者が見て何のアプリか分かる名前にしてください。
クライアント ID
アプリを識別する公開の文字列です。英小文字・数字・ハイフンで 3〜64 文字。
例:acme-learning-app、acme-mobile、acme-intranet-sync
このアプリに許可する操作(スコープ)
アプリが要求できる操作の上限を決めます。詳しくは「スコープの選び方」を参照してください。
read:members、write:members、read:reports、webhooks:manage、write:content、apps:manage)は、組織管理者のみが許可できます。開発者ロールだけの場合、これらのチェックボックスは選択できない状態で表示されます(組織管理者がすでに許可したものは、そのまま残ります)。
リダイレクト URI
サインイン後に利用者を戻す先の URL です。1 行に 1 件ずつ入力します。
https://app.example.com を登録した攻撃者が
https://app.example.com.attacker.test へ利用者を誘導し、認可コードを盗めてしまいます。
| 登録した値 | 送られてきた値 | 結果 |
|---|---|---|
acme://auth/callback | acme://auth/callback | 一致 |
acme://auth/callback | acme://auth/callback/ | 不一致(末尾スラッシュ) |
https://a.example/cb | http://a.example/cb | 不一致(http と https) |
http://localhost:8100/cb | http://localhost:3000/cb | 不一致(ポート) |
開発中のローカル URL も、使うなら登録しておいてください(例:http://localhost:8100/auth/callback)。
アプリの種別
モバイルアプリ、デスクトップアプリ、SPA。
配布物は解析できるため、秘密の値を安全に保持できません。シークレットの代わりに PKCE という仕組みで保護します。迷ったらこちらです。
自社サーバー上でのみ動作するアプリ。
クライアントシークレットが発行されます。ブラウザーやモバイル端末に配布されるコードでは使わないでください。
クライアントシークレット
機密クライアントとして登録すると、保存直後にシークレットが 1 度だけ表示されます。既存の公開クライアントを機密クライアントに変更した場合も、保存した時点でシークレットが発行され、1 度だけ表示されます。機密クライアントの編集画面には、常に「シークレットを再発行」ボタンが表示されます。
登録したあと
クライアント ID が発行されたら、サインインの実装に進めます。「Manabu2 アカウントでサインインさせる」を参照してください。
知っておくべき 2 つの制限
アプリを停止する
一覧の「停止」ボタンで、アプリを無効にできます。削除ではなく停止です。
- 停止すると、そのアプリでサインイン中の利用者は全員サインアウトされます
- そのアプリでの新しいサインインとトークンの更新はすべて拒否され、発行済みのアクセストークンも直ちに使えなくなります(有効期限を待ちません)
- 設定内容は残るため、後から再開できます