OpenID Connect 1.0 の仕様に準拠します。
ネイティブアプリケーションはこちらの認証方法を使用してください。
OpenID Connect Basic Client Implementer’s Guide 1.0
Webサイト上のJavascriptからの接続の場合こちらの認証方法を使用してください。
OpenID Connect Implicit Client Implementer’s Guide 1.0
例): http://address-stg.fudemame.jp/static/test_oidc.html
Request
GET /api/authorize?response_type=code&client_id=[CLIENT ID]&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
...
パラメータ名 | 説明 | 例 |
---|---|---|
response_type | 値は必ず’code’とする。これによりリダイレクトURIに認可コードが返される | code |
client_id | 弊社指定のクライアントID | address.fudemame.co.jp |
redirect_uri | ここで指定したURLに認可コードが返される | https://client.example.org/cb |
Reference
http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html#AuthenticationRequest
http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html#RequestParameters
Request
POST /api/token
...
パラメータ名 | 説明 | 例 |
---|---|---|
code | /api/authorizeのredirect urlリダイレクトURIに返される認可コードを指定する | |
client_id | 弊社指定のクライアントID | address.fudemame.co.jp |
client_secret | 弊社指定の秘密鍵 | |
grant_type | 値は必ず’authorization_code’とする。これによりアクセストークンが取得できる | authorization_code |
Response
HTTP/1.1 200 OK
...
{
"access_token":"SlAV32hkKG",
"refresh_token": "tGzv3JOkF0XG5Qx2TlKWIA",
"expires_in": 3600,
"id_token": "eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso"
}
項目名 | 説明 |
---|---|
val.access_token | リソースAPIを使用するために必要なトークン。1時間程度の有効期限を持つ |
val.refresh_token | アクセストークンの有効期限が切れた場合このトークンを用いてアクセストークンの再発行を行う。この場合エンドユーザによる認可を省略することができる。数カ月程度の有効期限を持つ |
val.expires_in | アクセストークンが生成されてから期限切れになるまでの秒数 |
val.id_token | ユーザ認証情報を含む改ざん検知用の署名付きトークン。ユーザセッション管理は必ずこのトークンに含まれる認証情報を用いること。1時間程度の有効期限を持つ |
Reference
http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html#TokenRequest
http://openid-foundation-japan.github.io/openid-connect-basic-1_0.ja.html#TokenOK
IDトークンの検証(デコード)を行う(補助的なAPI。可能であればこのAPIは使用せず、アプリ側で検証をすること)
Request
GET /api/checktoken?id_token=[IDトークン]
Authorization: Bearer ACCESS_TOKEN
...
パラメータ名 | 説明 | 例 |
---|---|---|
id_token | 検証するIDトークンを指定 | /api/checktoken?id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJI |
callback [任意] | JSONP使用する場合コールバック関数名を指定します | /api/checktoken?callback=func_name |
Response
HTTP/1.1 200 OK
...
{
"iss": "https://account.fudemame.jp",
"sub": "AAz5XJcjitOEm7gDMu+SEhIZKAcXCsLdmyYLxciABrLh",
"aud": "testapp.jp",
"iat": "2014-06-02T02:47:45.808057Z",
"exp": "2014-06-02T03:47:45.808057Z"
}
項目名 | 説明 |
---|---|
val.iss | IDトークンの発行元 |
val.sub | ユーザID |
val.aud | IDトークン発行対象のアプリケーションID |
val.iat | 発行時刻 |
val.exp | 有効期限 |
ユーザプロフィールの取得
Permission(Scope): profile
Request
GET /api/profile
Authorization: Bearer ACCESS_TOKEN
...
パラメータ名 | 説明 | 例” |
---|---|---|
callback [任意] | JSONP使用する場合コールバック関数名を指定します | /api/profile?callback=func_name |
Response
HTTP/1.1 200 OK
...
{
"user_id": "APTf2KXrws6pIblaeDQnlZgJu0sBiH0Vd6XZbjxvmHfb",
"email": "test@test.com",
"username": "User Name",
"companyname": "Company Name"
}
項目名 | 説明 |
---|---|
val.user_id | ユーザID |
val.email | メールアドレス |
val.username | ユーザ名 |
val.companyname | 会社名 |
サーバ情報の取得
Request
GET /api/info
Authorization: Bearer ACCESS_TOKEN
...
パラメータ名 | 説明 | 例 |
---|---|---|
callback [任意] | JSONP使用する場合コールバック関数名を指定します | /api/profile?callback=func_name |
Response
HTTP/1.1 200 OK
...
{
"now": "2014-11-11T04:15:57.998859Z"
}
項目名 | 説明 |
---|---|
val.now | サーバの現在時刻 |