5.11. SAML認証開始

GET /1/(tenantId)/auth/saml/init

SAML認証を開始する。

本APIは、SAML認証画面への誘導と認証成功後のログインに使用するワンタイムトークンの通知を行う。

Query Parameters:
 
  • redirect (string) -- 認証結果通知先URL(必須)
Status Codes:
Response Headers:
 
  • Location -- 認証サーバの認証URI
  • Set-Cookie -- SAML認証結果受付用Cookie情報

レスポンスの例

成功時(302 Found)のレスポンスヘッダの例を示す。:

Set-Cookie: redirect=http://sample.net; path=/api/1/52116f01ac521e1742000001/auth/saml/landing; expires=Mon, 31 Jan 2011 14:15:13 GMT
Location: https://baas.example.com/api/1/52116f01ac521e1742000001/auth/saml/start?idp=http://adfs.example.jp/adfs/services/trust

エラー時はエラーページ(HTML)が返却される。

ワンタイムトークンはHTTPリクエストのクエリパラメータとして認証結果通知先URLに通知される。 クエリパラメータ名は「token」であり、HTTPリクエストは以下のフォーマットとなる。:

{認証結果通知先URI}?token={ワンタイムトークン}

リダイレクトされるHTTPリクエスト行の例を以下に示す。

GET http://sample.net?token=t568PrrpvB1W7DhqBhlVfTMAc2NhsIw9j60OTZLz HTTP/1.1

SAML認証に成功し、認証されたユーザと同名のユーザが存在しない場合、DBにユーザを登録する。DBに登録するユーザ情報は、下記の通り。

ユーザ情報 説明
_id ユーザID(DB保存時に自動付加される)
tenantId テナントID
username SAMLトークンのCommonName属性の値
createdAt DB上のユーザ作成日時
updatedAt DB上のユーザ更新日時
etag ログイン時に自動付加されるETAG値
federated 外部認証連携有無(常にtrue)

"username"について、SAMLトークン内にCommonNameがない場合は、NameIDを用いる。

SAML認証に成功した場合、認証されたユーザに関連する公開グループ情報について、MongoDBへの反映を行う。 グループ情報は、グループ階層を意識しないフラット構造として扱う。登録、更新対象となるグループ情報は、以下の通り。

グループ情報 説明
id ユーザID(DB保存時に自動付加される)
tenantId テナントID
name SAMLトークンのGroup属性の値
users グループに所属するユーザ一覧
groups グループに所属する子グループ一覧
createdAt DB上のグループ作成日時
updatedAt DB上のグループ更新日時
etag 情報変更時に自動付加されるETag値
acl グループACL

"acl" には、読み出し権限に "g:authenticated" のみが設定される。

注意事項

  • SAML認証を使用しているテナントに対してのみ実行可能。
  • "redirect" には、デベロッパーコンソールで登録したURLを設定すること。登録されていない場合は400エラーを返却する。