GithubHelp home page GithubHelp logo

sign-in-with-apple's Introduction

Sign In With Apple

An authentication node for Apple's Sign in with Apple service. For Access Management 6.5.1 and above. This is a tech preview and will continue to be updated as the Apple service changes.

Build

The code in this repository has binary dependencies that live in the ForgeRock maven repository. Maven can be configured to authenticate to this repository by following the following ForgeRock Knowledge Base Article.

To build, run mvn clean package.

Install

Copy the .jar file from the ../target directory into the ../web-container/webapps/openam/WEB-INF/lib directory where AM is deployed. Restart the web container to pick up the new node. The node will then appear in the authentication trees components palette.

Configure

To configure a client to use with Access Management, you must have an account at https://developer.apple.com/.

Sign in and click on "Certificates, Identifiers & Profiles".

Apple_Developer

Next, create a new App ID Identifier and enable "Sign in with Apple"

Create_App_Id

After that, create a new Service Identifier. This service Identifier will be the client id used in the Authentication Node. Note, the Return URLs configured must be running TLS and be configured on port 443.

Create_Service_Id

The next step is to create a key to be used to generate your client secret. Enable this key for use with Sign in with Apple. Download this key and name it key.txt

Create_Key

Finally, create your client secret next by executing the following script.

Download the script to the same folder where you save your apple key. Next, update the kid value with your key id that you just created, the issuer with your Apple Team ID and the sub with your Apple Service ID. To execute the script, first make sure you have ruby installed. Then install the JWT library by running gem install jwt. Execute the script by running ruby client_secret.rb. This will output a JWT that you will be used as your client secret for the node.

Configure a new Authentication Tree in Access Management with the Sign in with Apple node and the Provision Dynamic Account Node like below. Set the Client Id to the Apple Service ID and the Client Secret to the JWT you just provisioned in the previous step. All other configuration have been set with the correct values to authorize end users to the Apple Sign In service.

Auth_Tree

Try It Out

Test out your new flow by navigating to https://{{hostname}}/openam/XUI/#login&service={{tree_name}} and find you are redirected.

Sign_In

sign-in-with-apple's People

Contributors

nirving avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.