チュートリアルでは、認証する手順について説明します ORCID iD。 それはどちらかを使用して完了することができます 公共 or メンバーAPI。 検証済みを取得する手順を確認します ORCID iDは、システムのデータベースに保存できます。 3つのオプションがあります。XNUMXつのレッグOAuth(長期間有効な更新アクセス許可用)と暗黙的なOAuth(読み取り専用の短期アクセス許可用)です。
クライアントの資格情報を取得する
クライアントのクレデンシャルは、アプリケーション/ウェブサイトがアクセスするために使用するユーザー名とパスワードです。 ORCID API。 誰でも読み取り専用のパブリックAPIクレデンシャルに登録できます。 ORCID メンバーはメンバーAPIに登録できます。
パブリックAPIクライアントを登録するにはどうすればよいですか?
開発者は、パブリックAPIをテストすることをお勧めします。 サンドボックス テスト サーバー 製品版を使用する前に。 以下は、サンドボックス環境と本番環境の両方でパブリックAPIクレデンシャルを登録する方法の手順です。
- あなたにサインインします ORCID 記録:
本番サーバー: https://orcid.org/signin
サンドボックステストサーバー: https://sandbox.orcid.org/signin - 右上隅にあるあなたの名前をクリックしてください
- 【送信】ボタンをクリックします。販売者は原則としてXNUMX日以内に回答を返信します。XNUMX日を過ぎても回答がない場合は、Artisanaryまでお問い合わせください。 開発者ツール メニューオプションから
注意: 開発者ツールにアクセスするには、メールアドレスを確認する必要があります。 メールアドレスをまだ確認していない場合は、この時点で確認するように求められます。 - 「無料で登録」をクリックします ORCID パブリックAPI」ボタン

- プロンプトが表示されたら、利用規約を確認して同意します。

アプリケーションを登録する
- 利用規約に同意すると、開発者ツールに戻ります(https://orcid.org/developer-tools or https://sandbox.orcid.org/developer-tools)。 提示されたフォームに記入して、新しいアプリケーションを登録します。
- お名前:アプリケーションの名前。 これは、ユーザーがアプリケーションにユーザーを取得する権限を付与したときに表示されます ORCID iD、そしてそれは彼らに表示されます 信頼できる組織リスト。 組織またはサービスの名前(ジャーナル名など)を使用することをお勧めします。
- Website:ユーザーがアプリケーションの詳細を確認するためにアクセスできるWebサイト。 これは彼らに表示されます 信頼できる組織リスト.
- 製品説明:開発中のアプリケーションとユーザーの使用方法に関する情報 ORCID iD。 これは、OAuth画面でユーザーに表示されます。

- URIをリダイレクトする:ユーザーがアプリケーションを承認すると、指定したURIに返されます。 これらのURIを事前に提供する必要があります。そうしないと、統合ユーザーでエラーが発生します。
- HTTPSURIのみ 生産で受け入れられます。
- 登録されたドメイン MUST サブドメインを含め、使用されているドメインと完全に一致します。
- 可能な場合は、すべてのリダイレクトURIを完全に登録します これは最も安全なオプションであり、私たちが推奨するものです。 リダイレクトURIの詳細については、 よくあるご質問
- パブリックAPIアプリケーションには、少なくともXNUMXつのリダイレクトURIが登録されている必要があります
- テストの場合、[リダイレクトURIのテスト]の下にある[+ Google OAuth2 Playground]をクリックするか、[+ Google OAuthXNUMX Playground]をクリックして、Google OAuthPlaygroundURIを自動的に追加できます。 ORCID 「+」をクリックしてパブリックAPISwaggerORCID パブリックSwaggerインターフェイス」。
- 詳細については、を参照してください。 リダイレクトURIについて。
- フォームの下部にある[保存]アイコンをクリックして、APIクレデンシャルを生成します。

- APIクレデンシャルを表示するには、[詳細を表示]をクリックします。

- APIクレデンシャル–クライアント ID およびクライアントシークレット–リダイレクトURIのすぐ下に表示されます。 クレデンシャルの下には、クレデンシャルが事前に入力されたサンプルURLとAPI呼び出しがあります。

クレデンシャルを使用する
クレデンシャルを取得したので、次は ORCID パブリックAPI!
あなたが ORCID メンバー。
Sandbox Member APIにテストクライアントを登録するにはどうすればよいですか?
また、ご購読はいつでも停止することが可能です サンドボックスメンバーAPIクレデンシャルをリクエストする アプリケーションをビルドしてテストします。 これらのクレデンシャルを使用すると、サンドボックスメンバーAPIを呼び出して、読み取り、書き込み、更新を行うことができます。 ORCID 記録。 サンドボックステスト環境へのアクセスは、あなたがそうでなくても、誰でも自由に利用できます。 ORCID メンバー組織。
注意:すでにサポートしているサードパーティシステムを使用している場合 ORCID、サンドボックスAPIクレデンシャルを登録する必要がない場合があります。
サンドボックスを使用すると、ライブ(本番)のデータに影響を与えることを心配することなく、テストユーザーアカウントを作成して統合を開発できます。 ORCID レジストリ。 サンドボックスは本番環境と同じように動作します ORCID とのレジストリ いくつかの例外.
テストアカウントの作成
情報の読み取りや追加など、ORCDAPIおよびAPI呼び出しをテストするため ORCID 記録するには、テストも作成する必要があります ORCID サンドボックスに記録します。 これは、本番環境と同様に、ユーザーインターフェイスを介して実行できます。 ORCID レジストリ。 に移動 https://sandbox.orcid.org/register アカウントに登録します。
Mailinatorのメールアドレス
サンドボックスサーバーは、通知メールをにのみ送信します Mailinator (@ mailinator.com)意図せずにメールサーバーにスパムを送信しないための電子メールアドレス。 @ mailinator.comアドレスを使用しない限り、確認メールまたはパスワードリセット通知を受信しません。サンドボックスレコードを手動で編集するには、確認が必要です。 自由に使用できる公開受信トレイの詳細をご覧ください ここに。 使用したくない場合 Mailinator アドレスを入力し、ユーザー名とパスワードをメモしてください(テスト時にアプリケーションに認証を付与するために使用するため)。 確認のサポートをリクエストするには、お問い合わせください。
Mailinator は、パブリックフリーサービスとプライベート有料サービスを備えたメールサービスです。 テストには、完全に無料の公共サービスを使用できます。 彼らの層についてもっと知る 詳細を見る.
Mailinatorは、によって管理または保守されていないサードパーティのサービスです ORCID。 これらのアドレスを使用する前に、このサービスの動作と制限を確認することをお勧めします。
リダイレクトURLを登録する
サインインすると、クライアントの登録の一部として指定したURLにユーザーが送信されます。
リダイレクトURIはどのように機能しますか?
リダイレクトURIをクライアント資格情報に登録するための2つの異なるオプションがあります。 その点に注意してください を 本番クレデンシャルのリダイレクトURIはhttpsである必要があります。
すべてのリダイレクト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として登録します。
メンバーAPIを使用していて、リダイレクトURIの変更が必要な場合は、エンゲージメントチームにお問い合わせください。
リダイレクトは、OAuthコード交換の一部としてのオプションのデータであることに注意してください。 リダイレクトURIが含まれている場合は、認証URLで使用されたものと完全に一致する必要があります。 詳細については、他のを参照してください このカテゴリのFAQ.
OAuthを実装する
以下では、によってサポートされるOAuthのXNUMXつの「フレーバー」について説明します。 ORCID。 ほとんどのプログラミング言語では、統合を容易にするOAuthおよび/またはOpenIDライブラリを利用できます。
3本足のOAuth
これは、ユーザーを認証するための標準的な方法です。 ORCID iD 認証済みの更新権限と一緒に長期間有効な更新権限を取得するために使用できます ORCID iD。
「3本足のOAuth」はどのように機能しますか?
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 更新権限を必要としないブラウザベースのアプリケーションで使用します。
暗黙的なOAuthはどのように機能しますか?
Implicit OAuthは、サーバー側のコンポーネントを持たない、または使用したくないシステムで使用するように設計された、軽量バージョンのOAuthです。 暗黙的なOAuthは、JavaScriptのみを使用してブラウザーに完全に実装できます。 メンバーと非メンバーが利用でき、次のように機能します。
- 特別なリンクを作成します
- クリックすると、ユーザーはに送信されます ORCID
- ORCID ユーザーにサインインするように求めます
- 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=eyJraWQiOiJxYS1vcmNpZC1vcmctcjlhZmw3cWY2aGNnN2c5bmdzenU1bnQ3Z3pmMGVhNmkiLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiMW52bXZBbVdwaVd0Z3ZKZW1DQmVYUSIsImF1ZCI6IkFQUC02TEtJSjNJNUIxQzRZSVFQIiwic3ViIjoiMDAwMC0wMDAyLTUwNjItMjIwOSIsImF1dGhfdGltZSI6MTUwNTk4Nzg2MiwiaXNzIjoiaHR0cHM6XC9cL29yY2lkLm9yZyIsIm5hbWUiOiJNciBDcmVkaXQgTmFtZSIsImV4cCI6MTUwNTk4ODQ2MywiZ2l2ZW5fbmFtZSI6IlRvbSIsImlhdCI6MTUwNTk4Nzg2Mywibm9uY2UiOiJ3aGF0ZXZlciIsImZhbWlseV9uYW1lIjoiRGVtIiwianRpIjoiY2U0YzlmNWUtNTBkNC00ZjhiLTliYzItMmViMTI0ZDVkNmNhIn0.hhhts2-4-ibjXPW6wEsFRaNqV_A-vTz2JFloYn7mS1jzQt3xuHiSaSIiXg3rpnt1RojF_yhcvE9Xe4SOtYimxxVycpjcm8yT_-7lUSrc46UCt9qW6gV7L7KQyKDjNl23wVwIifpRD2JSnx6WbuC0GhAxB5-2ynj6EbeEEcYjAy2tNwG-wcVlnfJLyddYDe8AI_RFhq7HrY4OByA91hiYvHzZ8VzoRW1s4CTCFurA7DoyQfCbeSxdfBuDQbjAzXuZB5-jD1k3WnjqVHrof1LHEPTFV4GQV-pDRmkUwspsPYxsJyKpKWSG_ONk57E_Ba--RqEcE1ZNNDUYHXAtiRnM3w
取り付けガイドを参照してください。 技術文書 詳細についてはこちら。
OpenID
OpenIDはOAuthの上に構築されており、いくつかの追加機能を提供します。
OpenIDとは何ですか?
OpenID Connect 1.0は、OAuth2.0プロトコルの上にある単純なIDレイヤーです。 これは、既存のOAuth認証フローを補足し、ユーザーに関する情報をクライアントに適切に説明された方法で提供します。
OpenID接続は、OAuthを実装し、認証されたユーザーに関する情報を共有するための標準化された方法です。 使用するサービスを構成できるようになります ORCID 他の標準に準拠したOpenID接続プロバイダーと一緒に「箱から出して」。 OpenID接続は共有可能も提供します ID トークン。これは、ユーザーがを使用して認証されたことを証明できる署名済みオブジェクトです。 ORCID 特定の時間に。 これらのトークンは、ユーザーインターフェイス要素がユーザーセッションを維持するために使用できます。
ORCID OAuth認証コードフローの拡張である基本的なOpenIDプロバイダー適合性プロファイルをサポートします。 ORCID 「/ authenticate」スコープと「openid」スコープの暗黙的なトークンフローもサポートします。
これは、 ORCID:
- 署名された埋め込み id 'openid'スコープで生成された認証コードのトークン応答内のトークン
- '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 OAuthJavaスクリプトウィジェットを提供しますか?
ORCID シンプルな Javaスクリプトウィジェット 認証を取得するために使用できる ORCID OpenIDConnectでOAuthを使用するiD。
ウィジェットは暗黙的なOAuthを使用するため、書き込み権限を収集しないことに注意してください。 これは、レコードを更新したいメンバー統合には適していないことを意味します。 のチュートリアルをご覧ください 上のデータの追加と更新 ORCID レコード。