4D NetKit: OAuth2認証の強化

4D v19 R3 では、OAuth 2.0 を介してアプリケーションを Microsoft Graph API に接続することが、4D NetKit を使用することで非常に便利になりました。

そして、4D v20 R2 では、Google API その他の OAuth 2.0サーバー OAuth 2.0トークンをシームレスに取得できるようになりました。さらに、この認証プロセスのアプリケーションへの統合をさらに強化するために、トークンを受け取ったら、独自のHTMLページを Webブラウザーに直接表示 できる機能を導入しました。

詳細はこちらをご覧ください!

HDI: OAuth 2.0 で GitHub に接続

前準備

Google API からトークンを取得する前に、まずは Google API Console から OAuth 2.0 クライアントの認証情報を取得します。これにより、あなたのアプリと Google API との信頼関係が確立されます。信頼関係は一方向のもので、アプリが Google API を信頼するのであって、その逆ではありません。

この Google のチュートリアル は、OAuth 2.0 を使って Google API にアクセスする方法を理解するための優れたリソースです。

登録により、アプリケーションは Google API Console と統合され、トークンを取得するための情報を設定します:

  • クライアント ID: Google API Console が割り当てる一意の識別子。
  • リダイレクト URI/URL: アプリが Google API Console からのレスポンスを受け取るエンドポイント。
  • クライアントシークレット: Google API Console との認証に使用する秘密鍵。

Google からアクセストークンを取得する

アクセストークンを取得するには New OAuth2 provider コマンドを使うか、name 属性を “Google” に設定された cs.NetKit.OAuth2Provider クラスを使います。

cs.NetKitOAuth2Provider クラスに、前準備の登録時に取得した情報をすべて設定します:

var $oAuth2 : cs.NetKit.OAuth2Provider
var $param : Object

$param:={name:"Google"; \
   permission:"signedIn"; \
   clientId:"499730024306-rfub401kvb2794llikrtb4fphigrggt7.apps.googleusercontent.com"; \
   clientSecret:"fc1kwxb6NMzEKi9Ka_fjvB2Z"; \
   redirectURI:"http://127.0.0.1:50993/authorize/"; \
   scope:"https://mail.google.com/"}
$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$token:=$oAuth2.getToken()

その他のサーバーからアクセストークンを取得する

New OAuth2 provider コマンドまたは cs.NetKit.OAuth2Provider クラスは、Microsoft や Google 以外のその他の OAuth 2.0 サーバーで使用することもできます。そのためには、authenticateURI と tokenURI に OAuth 2.0サーバーの URI を指定し、返される認証コードが JSON形式であることを確認するだけです。

たとえば、以下のコードでアプリケーションを GitHub に接続することができます:

var $oAuth2 : cs.NetKit.OAuth2Provider
var $param : Object

$param:={permission:"signedIn"; \
clientId:"734e0b59xxx"; \
clientSecret:"125a576xxx"; \
redirectURI:"http://localhost:50993/authorize/"; \
scope:"repo, user"; \
authenticateURI:"https://github.com/login/oauth/authorize"; \
tokenURI:"https://github.com/login/oauth/access_token"}

$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$token:=$oAuth2.getToken()

認証結果ページをカスタマイズする

認証の最後に独自のページを表示するには、authenticationPageauthenticationErrorPage 属性を使います:

$param.authenticationPage:=Folder(fk web root folder).file("authentication.htm")
$param.authenticationErrorPage:=Folder(fk web root folder).file("error.htm")

私たちは、ユーザーに最高の体験を提供できるよう常に努力しており、4Dフォーラムにあなたのフィードバックを投稿することをお勧めします。あなたのフィードバックは、あなたのニーズをよりよく理解し、製品とサービスを改善し続ける助けになります。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。