*Meeting Notes - 30/5/2019* During the meeting for [1], we also identified some federated account linking improvements that are currently not supported in WSO2 IS.
A single physical user may have a set of linked local accounts in WSO2 Identity Server. The same physical user may have one or more federated identities also. *Problems* 1. How to reliably link all the federated identities to the set of linked local accounts? 2. How do we allow users to login with any one of the federated accounts and get mapped to the primary local account or one of the other local accounts based on either configuration or user input and login to service provider? 3. Cannot link multiple federated accounts in the same IdP to a single local account. This could be a valid requirement. *Solutions* 1. How to reliably link all the federated identities to the set of linked local accounts? We do have just-in-time provisioning and linking in the same request. However, we don't have just-in-time linking to an existing user account. The reason being that we don't have just-in-time verification of ownership of the link identifier. For example, if the linking is done based on email address on both sides, the email address coming from the IdP must be verified. If we can't be sure if its verified, then it can result in an account takeover. Therefore we haven't allowed this capability out-of-the-box. However, in a particular deployment if we can make sure that the ownership of the link identifier is independently verified on both sides, then we can implement an extension and do the federated account linking. In order to implement the just-in-time link identifier verification, we can extend the federated account linking handler, find if a user exists with the link identifier, and set the "http://wso2.org/claims/verifyEmail" claim of that user to 'true'. This will initiate the email address verification flow for that particular user and send out a verification email to the user's given email address. Once the user logs into his email account and confirms the account, user will be directed to IS's portal, and a web service will be invoked to link the identified user to the federated account used to login. In this flow we may have to track the federated account identifier throughout the flow. This can be passed as a property to the notification handler and added as a URL parameter in the email confirmation link. Another problem which was discussed is that we can't directly link a federated account to multiple local accounts. Alternatively we can link the federated account to a single primary local account and link all the other local accounts to the primary account via local account linking. 2. How do we allow users to login with any one of the federated accounts and get mapped to the primary local account or one of the other local accounts based on either configuration or user input and login to service provider? Linking federated account identifier to the primary local account and logging in, is support today. What is not supported is allowing to pick a linked local account to the primary local account based on configuration or user input for a particular service provider. This can be implemented using a PostAuthenticationHandler. [1] "[IAM] What is our Strategy on Local Account Linking?" in [email protected] Thanks & Regards, Johann. -- *Johann Dilantha Nallathamby* | Associate Director/Solutions Architect | WSO2 Inc. (m) +94 (77) 7776950 | (w) +94 (11) 2145345 | (e) [email protected] [image: Signature.jpg]
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
