チュートリアルでは、認証する手順について説明します ORCID iD。 それはどちらかを使用して完了することができます 公共 or メンバーAPI。を取得する手順を確認します。 検証 ORCID iD、その後、システムのデータベースに保存できます。 3 Legged OAuth (長期更新権限用) と Implicit OAuth (読み取り専用の短期権限用) の XNUMX つのオプションがあります。
クライアントの資格情報を取得する
クライアントのクレデンシャルは、アプリケーション/ウェブサイトがアクセスするために使用するユーザー名とパスワードです。 ORCID API。誰でも読み取り専用のパブリック API 認証情報を登録できます。 ORCID メンバーはメンバーAPIに登録できます。
開発者は、パブリックAPIをテストすることをお勧めします。 サンドボックス テスト サーバー 製品版を使用する前に。以下は、サンドボックス環境と運用環境の両方でパブリック API 認証情報を登録する方法の手順です。
- あなたにサインインします ORCID 記録:
本番サーバー: https://orcid.org/signin
サンドボックステストサーバー: https://sandbox.orcid.org/signin - 右上隅にあるあなたの名前をクリックしてください
- クリック 開発者ツール メニューオプションから
ご注意: 開発者ツールにアクセスするには、電子メール アドレスを確認する必要があります。 電子メール アドレスをまだ検証していない場合は、パブリック API 認証情報を登録する前に検証するように求められます。 - を読み、同意します。ORCID パブリッククライアントの利用規約
- 「登録」をクリックします ORCID パブリック API 認証情報」ボタンをクリックします。
申請詳細フォームに記入する
- パブリック API 資格情報を登録すると、開発者ツールに戻ります (https://orcid.org/developer-tools or https://sandbox.orcid.org/developer-tools).
- 新しいアプリケーションを登録するには、表示されるアプリケーション詳細フォームに記入する必要があります。
- 名前:アプリケーションの名前。 これは、ユーザーがアプリケーションにユーザーを取得する権限を付与したときに表示されます ORCID iD、そしてそれは彼らに表示されます 信頼できる組織リスト。 組織またはサービスの名前(ジャーナル名など)を使用することをお勧めします。
- アプリケーションURL: ユーザーがアプリケーションの詳細を知るためにアクセスできる Web サイト。 これは彼らの記事にも表示されます 信頼できる組織リスト.
- アプリケーションの説明:開発中のアプリケーションとユーザーの使用方法に関する情報 ORCID iD。 これは、OAuth画面でユーザーに表示されます。
追加 URIをリダイレクトする
ユーザーがアプリケーションを承認すると、指定したURIに返されます。 これらのURIを事前に提供する必要があります。そうしないと、統合ユーザーでエラーが発生します。
- 表示されたボックスにリダイレクト URI を入力します
- 複数のリダイレクト URI を入力する必要がある場合は、「別のリダイレクト URI を追加」をクリックします。
※
- のみ HTTPS URI 本番環境で受け入れられます
- 登録されたドメイン MUST サブドメインを含め、使用されているドメインと完全に一致する
- 可能な場合は、すべてのリダイレクト URI を完全に登録します。 これは最も安全なオプションであり、推奨されます。 リダイレクト URI の詳細については、「 リダイレクト URI に関するよくある質問
アプリケーションを保存する
アプリケーション フォームに記入し、リダイレクト URI を追加したら、アプリケーションを保存できます。
- 「アプリケーションを保存し、クライアントIDとシークレットを生成する」をクリックします。
開発者ツールのページに戻ります。このページには、パブリック API クライアントの認証情報が含まれています。
資格情報を更新する
アプリケーション情報の変更は非常に簡単です。
- 関連情報を編集し、「アプリケーションを保存」をクリックします。
クレデンシャルを使用する
クレデンシャルを取得したので、次は ORCID パブリックAPI!
あなたが ORCID メンバー 将来インチ
また、ご購読はいつでも停止することが可能です サンドボックスメンバーAPIクレデンシャルをリクエストする アプリケーションを構築してテストします。これらの資格情報により、サンドボックスプレミアムメンバーAPIを呼び出して読み取り、書き込み、更新を行うことができます。 ORCID 記録。 サンドボックステスト環境へのアクセスは、あなたがそうでなくても、誰でも自由に利用できます。 ORCID メンバー組織。
注意: を使用している場合 ORCID すでにサポートしている認定サービスプロバイダーシステム ORCIDサンドボックスAPIの認証情報を登録する必要はありません。 ORCID サンドボックス環境内での統合機能。
サンドボックスを使用すると、ライブ(本番)のデータに影響を与えることを心配することなく、テストユーザーアカウントを作成して統合を開発できます。 ORCID レジストリ。 サンドボックスは本番環境と同じように動作します ORCID とのレジストリ いくつかの例外.
テストアカウントの作成
テストするために ORCID への情報の読み取りや追加などの API および API 呼び出し ORCID 記録するには、テストも作成する必要があります ORCID サンドボックスに記録します。 これは、本番環境と同様に、ユーザーインターフェイスを介して実行できます。 ORCID レジストリ。 に移動 https://sandbox.orcid.org/register アカウントに登録します。
Mailinatorのメールアドレス
サンドボックスサーバーは、 Mailinator (@ mailinator.com)意図せずにメールサーバーにスパムを送信しないための電子メールアドレス。 @ mailinator.comアドレスを使用しない限り、確認メールまたはパスワードリセット通知を受信しません。サンドボックスレコードを手動で編集するには、確認が必要です。 自由に使用できる公開受信トレイの詳細をご覧ください ページ をご覧ください 使用したくない場合 Mailinator ユーザー名とパスワードを書き留めて (テスト時にアプリケーションに承認を与えるために使用するため)、検証の支援を依頼するために当社に連絡してください。
Mailinator は、パブリック無料サービスとプライベート有料サービスを備えたメール サービスです。 テストには、完全に無料のパブリック サービスを使用できます。 ティアの詳細を確認する (茶事の話はこちらをチェック).
Mailinatorは、によって管理または保守されていないサードパーティのサービスです ORCID。 これらのアドレスを使用する前に、このサービスの動作と制限を確認することをお勧めします。
リダイレクトURLを登録する
サインインすると、クライアントの登録の一部として指定したURLにユーザーが送信されます。
リダイレクトURIとは何ですか?どのように使用されますか?
リダイレクトURIは、セキュリティ対策としてOAuth認証サービスによって使用されます。 ORCID 認証を要求するクライアントによって登録されたURIにのみ認証ユーザーを送信します。 これにより、サービスが相互になりすますことを防ぎます。
ということに注意してください HTTPS URI のみ 生産に受け入れられます。 HTTP URI を使用してテストできますが、登録する必要があります HTTPS URI 本番メンバーの API 資格情報を申請するとき。
リダイレクトURIをどのように照合しますか?
- サブドメインを個別のURIとして登録する必要があります。 https://anythingelse.thirdparty.comは機能しません。
- パスを含むすべてのリダイレクトURIを完全に登録することをお勧めしますは、ほとんどのサードパーティが行うことであり、最も安全なオプションです。
- クライアントアプリがホスト名だけのリダイレクトURIで登録されている場合、そのホストの任意のリダイレクトURIを使用できます。 したがって、たとえば、次のリダイレクトURIが登録されている場合: https://thirdparty.com その後、次のすべてのredirect_urisが機能します。
- https://thirdparty.com/oauth/callback1
- https://thirdparty.com/callback2
- https://thirdparty.com/anything-else-as-long-as-the-host-is-the-same
ただし、https://anythingelse.thirdparty.com 動作しないでしょう。 You MUST サブドメインを個別のURIとして登録します。
リダイレクトURIが正しくない場合はどうなりますか?
で認証するために送信されたユーザー ORCID リダイレクトURIが正しくないと、次のようなエラーメッセージが表示されます。
メンバーのリダイレクトURIの管理
メンバーAPIを使用していて、リダイレクトURIの変更が必要な場合は、エンゲージメントチームにお問い合わせください
パブリッククライアントのリダイレクトURIの管理
パブリックAPIを使用している場合は、以下の手順に従って、に関連付けられているリダイレクトURIのリストを更新する必要があります。 ORCID パブリックAPIクライアントID。 これを行うには、以下の手順に従います。
- あなたにサインインする ORCID 記録
- 右隅にあるあなたの名前をクリックしてください
- 開発者ツールを選択する
- クライアント名の横にある編集鉛筆をクリックします
- 既存のリダイレクトURIを編集するか、[別のリダイレクトURIを追加]をクリックして既存のリダイレクトURIを編集します
- 変更を加えたら、保存アイコンをクリックする必要があります
HTTPSURIのみ 生産に受け入れられます。 http URI を使用してテストできますが、本番メンバー API 資格情報を申請するときに HTTPS URI を登録する必要があります。
OAuthを実装する
以下では、によってサポートされるOAuthのXNUMXつの「フレーバー」について説明します。 ORCID。ほとんどのプログラミング言語には、統合を容易にする OAuth ライブラリや OpenID ライブラリが用意されています。
3本足のOAuth
これは、ユーザーを認証するための標準的な方法です。 ORCID iD 認証済みの更新権限と一緒に長期間有効な更新権限を取得するために使用できます ORCID iD。
ORCID 統合では、「3レッグOAuth」を使用してユーザーを認証し、ユーザーのレコードを操作するための許可を要求します。 どの統合でも、パブリックAPIを使用して読み取り権限を要求できます。 ORCID メンバーは Member API を使用して更新権限を要求できます。それはこのように動作します:
- 特別なリンクを作成します
- クリックすると、ユーザーはに送信されます ORCID
- ORCID ユーザーにサインインするように求めます
- ORCID アプリケーションに権限を付与するようにユーザーに要求します
- ORCID 認証コードを使用してユーザーをシステムに送り返します
- システムはそのコードをアクセストークンと交換します
カスタマイズされた認証 URL には、クライアント情報に加えて、アクセスしたいレコードの特定の領域を指定する「スコープ」が含まれます。サインイン後、ユーザーはシステムとの接続を認証し、認証コードとともにランディング ページに返されます。このコードは、そのコードを取得するために使用されます。 ORCID iD 要求されたスコープに有効なアクセストークンとともに。
API認証情報のクライアントIDと関連するランディングページ(リダイレクトURI)を指定して認証リンクを作成します。設定によって要求する権限を選択します。 スコープパラメータ.
以下の例では、アクセスが制限されたデータを読み取る許可を要求しています。 ORCID サンドボックステストサーバー。実際の世界では、このリンクを Web サイトに表示するか、ユーザーに認証と承認を求めるときに電子メールに含めます。ただし、テスト目的であれば、Web ブラウザに貼り付けるだけで済みます。角括弧で囲まれたデータをクライアント情報に置き換えてください。角括弧は必ず削除してください。
https://sandbox.orcid.org/oauth/authorize?client_id=[Your client ID]&response_type=code&scope=/read-limited&redirect_uri=[Your landing page]
ユーザーがリンクをクリックし、でサインインした場合 ORCID 付与されたアクセス許可は、次のようにサイトにリダイレクトされます。
https://[Your landing page]?code=Q70Y3A
すぐに認証コードを交換する必要があります ORCID iD そしてアクセストークン。認証コードは使用すると期限切れになります。リクエストは次のようになります。 Webブラウザでは作成できません、サーバーで作成する必要があります。
URL=https://sandbox.orcid.org/oauth/token
HEADER: Accept: application/json
HEADER: Content-Type: application/x-www-form-urlencoded
METHOD: POST
DATA:
client_id=[Your client ID]
client_secret=[Your client secret]
grant_type=authorization_code
code=Six-digit code
redirect_uri=[Your landing page]
ORCID その後、研究者の認証済みを返します ORCID iD およびJSON形式のアクセストークン:
{"access_token":"f5af9f51-07e6-4332-8f1a-c0c11c1e3728","token_type":"bearer",
"refresh_token":"f725f747-3a65-49f6-a231-3e8944ce464d","expires_in":631138518,
"scope":"/read-limited","name":"Sofia Garcia","orcid":"0000-0001-2345-6789"}
アクセストークンはデフォルトで長期間有効であり、発行後20年で有効期限が切れます。 トークンは、有効期限が切れる前に複数回使用できます。
アクセストークンを使用する
3本足のアクセストークンは特定のものにリンクされています ORCID 記録。これらを使用するには、そのレコードを読み取りまたは更新するために行う API リクエストにそれらを含めます。
暗黙的なOAuth
これは、ユーザーを認証するブラウザ中心の方法です。 ORCID iD 更新権限を必要としないブラウザベースのアプリケーションで使用します。
Implicit OAuth は、サーバー側コンポーネントを持たない、または使用したくないシステムで使用するように設計された OAuth の軽量バージョンです。暗黙的 OAuth は、JavaScript のみを使用してブラウザーに完全に実装できます。メンバーと非メンバーが利用でき、次のように機能します。
- 特別なリンクを作成します
- クリックすると、ユーザーはに送信されます ORCID
- ORCID ユーザーに i に署名するように求めます
- ORCID アプリケーションに権限を付与するようにユーザーに要求します
- ORCID ユーザーをシステムに送り返します ORCID iD、アクセス トークン、および ID トークン。
- システムは認証済みを抽出して保存します ORCID iD 応答から。
セキュリティ上の理由から、暗黙的なOAuthを使用する場合、 ORCID 更新権限を持つアクセストークンは返されません。
暗黙のフロー
暗黙的なフローは、クライアントが開始するために秘密鍵を使用する必要がないように設計されています ORCID サインインします。セキュリティは、クライアントを登録済みのredirect_urlsに制限することで実施されます。 この低レベルのセキュリティは、 ORCID 暗黙的なフローを使用する場合は、/ authenticateスコープとopenidスコープのみをサポートします。 トークンも短命で、寿命は10分です。 このフローは、電話アプリケーションや単一ページのJavaScript Webアプリなど、バックエンドサーバーにアクセスできないクライアント側アプリケーションに推奨されます。
https://localhost/#access_token=24c11342-f5da-4cf9-94a4-f8a72a30da00&token_type=bearer&expires_in=599&tokenVersion=1&persistent=false&id_token=eyJraWQiOiJxYS1vcmNpZC1vcmctcjlhZmw3cWY2aG2c5bmdzenU1bnQ3Z3pmMGVhNmkiLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiMW52bXZBbVdwaVd0Z3ZKZW1DQmVYUSIsImF1ZCI6IkFQUC02TEtJSjNJNUIxQzRZSVFQIiwic3ViIjoiMDAwMC0wMDAyLTUwNjItMjIwOSIsImF1dGhfdGltZSI6MTUwNTk4Nzg2MiwiaXNzIjoiaHR0cHM6XC9cL29yY2lkLm9yZyIsIm5hbWUiOiJNciBDcmVkaXQgTmFtZSIsImV4cCI6MTUwNTk4ODQ2MywiZ2l2ZW5fbmFtZSI6IlRvbSIsImlhdCI6MTUwNTk4Nzg2Mywibm9uY2UiOiJ3aGF0ZXZlciIsImZhbWlseV9uYW1lIjoiRGVtIiwianRpIjoiY2U0YzlmNWUtNTBkNC00ZjhiLTliYzItMmViMTI0ZDVkNmNhIn0.hhhts2-4-ibjXPW6wEsFRaNqV_A-vTz2JFloYn7mS1jzQt3xuHiSaSIiXg3rpnt1RojF_yhcvE9Xe4SOtYimxxVycpjcm8yT_-7lUSrc46UCt9qW6gV7L7KQyKDjNl23wVwIifpRD2JSnx6WbuC0GhAxB5-2ynj6EbeEEcYjAy2tNwG-wcVlnfJLyddYDe8AI_RFhq7HrY4OByA91hiYvHzZ8VzoRW1s4CTCFurA7DoyQfCbeSxdfBuDQbjAzXuZB5-jD1k3WnjqVHrof1LHEPTFV4GQV-pDRmkUwspsPYxsJyKpKWSG_ONk57E_Ba--RqEcE1ZNNDUYHXAtiRnM3w
取り付けガイドを参照してください。 技術文書 。
OpenID
OpenIDはOAuthの上に構築されており、いくつかの追加機能を提供します。
OpenID Connect 1.0は、OAuth2.0プロトコルの上にある単純なIDレイヤーです。 これは、既存のOAuth認証フローを補足し、ユーザーに関する情報をクライアントに適切に説明された方法で提供します。
OpenID接続は、OAuthを実装し、認証されたユーザーに関する情報を共有するための標準化された方法です。 使用するサービスを構成できるようになります ORCID 他の標準に準拠したOpenID Connectプロバイダーと並んで「すぐに使える」。OpenID Connectは、ユーザーが認証されたことを証明できる署名付きオブジェクトである共有可能なIDトークンも提供する。 ORCID 特定の時間に。 これらのトークンは、ユーザーインターフェイス要素がユーザーセッションを維持するために使用できます。
ORCID OAuth認証コードフローの拡張である基本的なOpenIDプロバイダー適合性プロファイルをサポートします。 ORCID 「/ authenticate」スコープと「openid」スコープの暗黙的なトークンフローもサポートします。
これは、 ORCID:
- 'openid' スコープで生成された認証コードのトークン応答内に署名された ID トークンを埋め込みます。
- 'token'または 'token id_token'response_typesおよび' openid 'スコープを使用する場合の暗黙的なフローをサポートします。
- 'openid'スコープを含む承認リクエストの 'prompt'、 'nonce'、および 'max_age'パラメーターをサポートします。
- OpenidConnectの検出とuserinfoエンドポイントをサポートします
- 「openid」スコープを含む承認リクエストのメンバー API を使用するインテグレータの「amr」フィールドをサポートします。 これを使用して、ユーザーが XNUMX 要素認証を使用して認証されたかどうかを検出できます。
OpenID Connect認証の開始は、通常のOAuth認証と同じように機能します。 必要なのは、クライアントが「openid」スコープを要求することだけです。/authenticateスコープを使用している場合は、openidに置き換えます。authenticateとopenidは同じ認証を持っているため、どちらか一方のみを使用する必要があります。 他のスコープを使用している場合は、要求されたスコープのリストにopenidを追加します。 openidスコープが含まれている場合、レジストリはトークン応答内にid_tokenを返し、そのユーザーのユーザー情報エンドポイントにアクセスするためのアクセス許可をクライアントに付与します。
「openid」スコープは、他のスコープのように「/」で始まらないことに注意してください。 ORCID APIスコープ。 これは、「openid」スコープがによって定義されていないためです。 ORCID、ただし、代わりにOpenIDConnect仕様で定義されています。
取り付けガイドを参照してください。 技術文書 。
を使用して認証済みiDを収集する ORCIDのOAuthJavaスクリプトウィジェット
ORCID シンプルな Javaスクリプトウィジェット 認証を取得するために使用できる ORCID OpenIDConnectでOAuthを使用するiD。
ウィジェットは暗黙的なOAuthを使用するため、書き込み権限を収集しないことに注意してください。 これは、レコードを更新したいメンバー統合には適していないことを意味します。 のチュートリアルをご覧ください 上のデータの追加と更新 ORCID レコード。