-
Notifications
You must be signed in to change notification settings - Fork 102
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #936 from ase-101/release-1.5.x
ES-842
- Loading branch information
Showing
12 changed files
with
127 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Overview | ||
|
||
eSignet offers a seamless and straightforward solution for incorporating an existing trusted identity database into the | ||
digital realm via plugins. | ||
|
||
![esignet-architecture-overview.png](../esignet-architecture-overview.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Overview | ||
|
||
A relying party could request for verified claims using the claims request parameter. eSignet pulls the existing claims | ||
metadata on successful authentication of the user. If the existing claims metadata does not suffice the relying party request | ||
then eSignet prompts the user to go through eKYC verification process. To handle eKYC verification process user will be | ||
redirected to eSignet signup portal. On successful eKYC verification process, verified claim and its verification details | ||
are stored in the integrated ID registry. As the verified claim and its metadata is stored, eSignet will be able to serve | ||
the relying party's verified claims request. | ||
|
||
User must consent to go through the eKYC verification process. if the user denies to take the verification process, then | ||
it is considered as consent rejection to share the requested verified claims with the relying party. | ||
|
||
If any one of the requested verified claim is mandatory, then user is prompted to go through eKYC verification process. | ||
On confirmation, user is redirected to signup portal to carry out the verification process. If all the | ||
requested verified claims are optional, no prompt is displayed. User is directly taken to the consent screen. | ||
Option to choose eKYC verification process is supposed to be displayed in the consent screen in the later case(not implemented). | ||
|
||
# Changes required in eSignet | ||
|
||
* Authenticator interface: | ||
* On successful authentication, integrated IDA system should return back claims metadata of an authenticated user. | ||
* On KYC exchange, requested verified claims should be sent to the kyc_exchange method so the plugin should have all | ||
the requested details to build the userinfo JWT with the requested verified claim details. | ||
|
||
* OIDC UI: | ||
* After successful authentication, display requested claim availability & verification status to the user. So user can | ||
take well-informed decision to agree or deny eKYC verification process. | ||
* Authenticated user should be able to start a verification process in signup portal with the same authenticated context. | ||
ID token based authentication of the user should be provisioned. | ||
* If no claims are requested by the relying party, consent screen should be skipped. | ||
* Logic to handle flawless resume of OIDC transaction after successful eKYC verification process. | ||
|
||
* Authorization Controller: | ||
* oauth-details endpoint should support verified_claims in the current claims request parameter. | ||
* consent-management should be modified to consider verified claims. | ||
* id_token_hint request parameter part of the OIDC protocols 'authorize' call should be supported and should be be only | ||
allowed for signup portal OIDC client ID. | ||
* v3/authenticate endpoint should support new 'IDT' ACR and support ID token based authentication only when a cookie | ||
exists with name equal to the 'sub' in the input ID token. Value of the matching cookie should have valid server nonce. | ||
* New endpoint to fetch authenticated user's claim status in the integrated ID system. Mainly availability and verification status. | ||
|
||
# Sequence diagram: | ||
|
||
![identity-assurance-flow-drawio.png](../identity-assurance-flow-drawio.png) | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
37 changes: 37 additions & 0 deletions
37
esignet-core/src/main/java/io/mosip/esignet/core/util/NoOpKeyBinderImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package io.mosip.esignet.core.util; | ||
|
||
import io.mosip.esignet.api.dto.AuthChallenge; | ||
import io.mosip.esignet.api.dto.KeyBindingResult; | ||
import io.mosip.esignet.api.dto.SendOtpResult; | ||
import io.mosip.esignet.api.exception.KeyBindingException; | ||
import io.mosip.esignet.api.exception.SendOtpException; | ||
import io.mosip.esignet.api.spi.KeyBinder; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
import org.springframework.stereotype.Component; | ||
|
||
import java.util.List; | ||
import java.util.Map; | ||
|
||
import static io.mosip.esignet.api.util.ErrorConstants.NOT_IMPLEMENTED; | ||
|
||
@ConditionalOnProperty(value = "mosip.esignet.integration.key-binder", havingValue = "NoOpKeyBinder") | ||
@Component | ||
@Slf4j | ||
public class NoOpKeyBinderImpl implements KeyBinder { | ||
|
||
@Override | ||
public SendOtpResult sendBindingOtp(String individualId, List<String> otpChannels, Map<String, String> requestHeaders) throws SendOtpException { | ||
throw new SendOtpException(NOT_IMPLEMENTED); | ||
} | ||
|
||
@Override | ||
public KeyBindingResult doKeyBinding(String individualId, List<AuthChallenge> challengeList, Map<String, Object> publicKeyJWK, String bindAuthFactorType, Map<String, String> requestHeaders) throws KeyBindingException { | ||
throw new KeyBindingException(NOT_IMPLEMENTED); | ||
} | ||
|
||
@Override | ||
public List<String> getSupportedChallengeFormats(String authFactorType) { | ||
return List.of(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters