public void CreateDefaultWithEmailTest()
        {
            InitiateAuthenticationRequest expectedInitiateAuthenticationRequest = new InitiateAuthenticationRequest(UserInfoType.EMAIL, EMAIL, MinRegistrationLevel.BASIC, null, null);
            InitiateAuthenticationRequest initiateAuthenticationRequest         = InitiateAuthenticationRequest.CreateDefaultWithEmail(EMAIL);

            AssertRequestsAreEqual(expectedInitiateAuthenticationRequest, initiateAuthenticationRequest);
        }
Esempio n. 2
0
 public static void ValidateInitAuthRequest(InitiateAuthenticationRequest initiateAuthenticationRequest, TransactionContext transactionContext)
 {
     ValidateRequest(initiateAuthenticationRequest);
     ValidateUserInfoTypeAndUserInfo(initiateAuthenticationRequest.UserInfoType, initiateAuthenticationRequest.UserInfo, transactionContext);
     ValidateRequestedAttributes(initiateAuthenticationRequest.AttributesToReturn);
     ValidateRelyingPartyIdIsEmpty(initiateAuthenticationRequest.RelyingPartyId);
 }
        public void CreateDefaultWithSsnTest()
        {
            InitiateAuthenticationRequest expectedInitiateAuthenticationRequest = new InitiateAuthenticationRequest(UserInfoType.SSN, UserInfoUtil.ConvertSsnUserInfo(SSN_USER_INFO), MinRegistrationLevel.BASIC, null, null);
            InitiateAuthenticationRequest initiateAuthenticationRequest         = InitiateAuthenticationRequest.CreateDefaultWithSsn(SSN_USER_INFO);

            AssertRequestsAreEqual(expectedInitiateAuthenticationRequest, initiateAuthenticationRequest);
        }
Esempio n. 4
0
        private void SendInitAuthRequestAndAssertResponse(InitiateAuthenticationRequest expectedRequest, InitiateAuthenticationRequest validRequest, String initAuthResponseString)
        {
            StartMockServer(expectedRequest, (int)HttpStatusCode.OK, initAuthResponseString);
            String reference = authenticationClient.Initiate(validRequest);

            StopServer();
            Assert.AreEqual(REFERENCE, reference);
        }
        private void AssertRequestsAreEqual(InitiateAuthenticationRequest expectedInitiateAuthenticationRequest, InitiateAuthenticationRequest initiateAuthenticationRequest)
        {
            Assert.AreEqual(expectedInitiateAuthenticationRequest.UserInfoType, initiateAuthenticationRequest.UserInfoType);
            Assert.AreEqual(expectedInitiateAuthenticationRequest.UserInfo, initiateAuthenticationRequest.UserInfo);
            Assert.AreEqual(expectedInitiateAuthenticationRequest.MinRegistrationLevel, initiateAuthenticationRequest.MinRegistrationLevel);
            SortedSet <AttributeToReturn> .CreateSetComparer().Equals(initiateAuthenticationRequest.AttributesToReturn, expectedInitiateAuthenticationRequest.AttributesToReturn);

            Assert.AreEqual(expectedInitiateAuthenticationRequest.RelyingPartyId, initiateAuthenticationRequest.RelyingPartyId);
        }
        public void CreateCustomRequest_userInfoTypeEmail_defaultRegistrationState()
        {
            InitiateAuthenticationRequest expectedInitiateAuthenticationRequest = new InitiateAuthenticationRequest(UserInfoType.EMAIL, EMAIL, MinRegistrationLevel.BASIC, REQUESTED_ATTRIBUTES, RELYING_PARTY_ID);
            InitiateAuthenticationRequest initiateAuthenticationRequest         = InitiateAuthenticationRequest.CreateCustom()
                                                                                  .SetEmail(EMAIL)
                                                                                  .SetAttributesToReturn(AttributeToReturn.SSN, AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.DATE_OF_BIRTH, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID, AttributeToReturn.RELYING_PARTY_USER_ID, AttributeToReturn.ORGANISATION_ID_IDENTIFIER)
                                                                                  .SetRelyingPartyId(RELYING_PARTY_ID)
                                                                                  .Build();

            AssertRequestsAreEqual(expectedInitiateAuthenticationRequest, initiateAuthenticationRequest);
        }
        public void CreateCustomRequest_userInfoTypePhoneNumber()
        {
            InitiateAuthenticationRequest expectedInitiateAuthenticationRequest = new InitiateAuthenticationRequest(UserInfoType.PHONE, PHONE_NUMBER, REGISTRATION_STATE, REQUESTED_ATTRIBUTES, RELYING_PARTY_ID);
            InitiateAuthenticationRequest initiateAuthenticationRequest         = InitiateAuthenticationRequest.CreateCustom()
                                                                                  .SetPhoneNumber(PHONE_NUMBER)
                                                                                  .SetAttributesToReturn(AttributeToReturn.SSN, AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.DATE_OF_BIRTH, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID, AttributeToReturn.RELYING_PARTY_USER_ID, AttributeToReturn.ORGANISATION_ID_IDENTIFIER)
                                                                                  .SetMinRegistrationLevel(REGISTRATION_STATE)
                                                                                  .SetRelyingPartyId(RELYING_PARTY_ID)
                                                                                  .Build();

            AssertRequestsAreEqual(expectedInitiateAuthenticationRequest, initiateAuthenticationRequest);
        }
Esempio n. 8
0
        public void InitAuth_success()
        {
            String initAuthResponseString = jsonService.SerializeToJson(initiateAuthenticationResponse);

            InitiateAuthenticationRequest initiateAuthenticationRequestDefaultWithEmail = InitiateAuthenticationRequest.CreateDefaultWithEmail(EMAIL);

            SendInitAuthRequestAndAssertResponse(initiateAuthenticationRequestDefaultWithEmail, initAuthResponseString);

            InitiateAuthenticationRequest initiateAuthenticationRequestDefaultWithSsn = InitiateAuthenticationRequest.CreateDefaultWithSsn(SsnUserInfo.Create(Country.NORWAY, SSN));

            SendInitAuthRequestAndAssertResponse(initiateAuthenticationRequestDefaultWithSsn, initAuthResponseString);

            InitiateAuthenticationRequest initAuthenticationRequestWithRequestedAttributesUserInfoEmail = InitiateAuthenticationRequest.CreateCustom()
                                                                                                          .SetEmail(EMAIL)
                                                                                                          .SetAttributesToReturn(AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.SSN, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID)
                                                                                                          .Build();

            SendInitAuthRequestAndAssertResponse(initAuthenticationRequestWithRequestedAttributesUserInfoEmail, initAuthResponseString);

            InitiateAuthenticationRequest initAuthenticationRequestWithRequestedAttributesUserInfoPhoneNum = InitiateAuthenticationRequest.CreateCustom()
                                                                                                             .SetPhoneNumber(EMAIL)
                                                                                                             .SetAttributesToReturn(AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.SSN, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID)
                                                                                                             .Build();

            SendInitAuthRequestAndAssertResponse(initAuthenticationRequestWithRequestedAttributesUserInfoPhoneNum, initAuthResponseString);

            InitiateAuthenticationRequest initAuthenticationRequestWithRequestedAttributesUserInfoSsn = InitiateAuthenticationRequest.CreateCustom()
                                                                                                        .SetSsn(SsnUserInfo.Create(Country.NORWAY, SSN))
                                                                                                        .SetAttributesToReturn(AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.SSN, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID)
                                                                                                        .Build();

            SendInitAuthRequestAndAssertResponse(initAuthenticationRequestWithRequestedAttributesUserInfoSsn, initAuthResponseString);

            InitiateAuthenticationRequest initAuthenticationRequestWithRequestedAttributesUserInfoInferred = InitiateAuthenticationRequest.CreateCustom()
                                                                                                             .SetInferred()
                                                                                                             .SetAttributesToReturn(AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.SSN, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID)
                                                                                                             .Build();

            SendInitAuthRequestAndAssertResponse(initAuthenticationRequestWithRequestedAttributesUserInfoInferred, initAuthResponseString);

            InitiateAuthenticationRequest initAuthenticationRequestWithRegistrationStateAndRelyingPartyId = InitiateAuthenticationRequest.CreateCustom()
                                                                                                            .SetEmail(EMAIL)
                                                                                                            .SetMinRegistrationLevel(MinRegistrationLevel.EXTENDED)
                                                                                                            .SetRelyingPartyId(RELYING_PARTY_ID)
                                                                                                            .Build();
            InitiateAuthenticationRequest expectedInitAuthenticationRequestWithRegistrationStateAndRelyingPartyId = InitiateAuthenticationRequest.CreateCustom()
                                                                                                                    .SetEmail(EMAIL)
                                                                                                                    .SetMinRegistrationLevel(MinRegistrationLevel.EXTENDED)
                                                                                                                    .Build();

            SendInitAuthRequestAndAssertResponse(expectedInitAuthenticationRequestWithRegistrationStateAndRelyingPartyId, initAuthenticationRequestWithRegistrationStateAndRelyingPartyId, initAuthResponseString);
        }
        private void RelyingPartyNull_success(InitiateAuthenticationRequest initiateAuthenticationRequest)
        {
            InitiateAuthenticationResponse expectedResponse = new InitiateAuthenticationResponse(CommonTestData.REFERENCE);

            CommonTestData.HttpServiceMock.Setup(x => x.Send <InitiateAuthenticationResponse>(It.IsAny <Uri>(), It.IsAny <string>(), It.IsAny <InitiateAuthenticationRequest>(), null)).Returns(expectedResponse);

            IAuthenticationClient authenticationClient = AuthenticationClient.Create(SslSettings.Create(TestKeystoreUtil.GetKeystorePath(TestKeystoreUtil.KEYSTORE_PATH_PKCS12), TestKeystoreUtil.KEYSTORE_PASSWORD, TestKeystoreUtil.GetKeystorePath(TestKeystoreUtil.CERTIFICATE_PATH)), FrejaEnvironment.TEST)
                                                         .SetHttpService(CommonTestData.HttpServiceMock.Object)
                                                         .SetTransactionContext(TransactionContext.PERSONAL).Build <AuthenticationClient>();
            string reference = authenticationClient.Initiate(initiateAuthenticationRequest);

            CommonTestData.HttpServiceMock.Verify(x => x.Send <InitiateAuthenticationResponse>(new Uri(FrejaEnvironment.TEST + MethodUrl.AUTHENTICATION_INIT), RequestTemplate.INIT_AUTHENTICATION_TEMPLATE, initiateAuthenticationRequest, null));
            Assert.AreEqual(CommonTestData.REFERENCE, reference);
        }
Esempio n. 10
0
        public void InitAuth_organisationalTransaction_success()
        {
            AuthenticationClient authenticationClient = AuthenticationClient.Create(SslSettings.Create(TestKeystoreUtil.GetKeystorePath(TestKeystoreUtil.KEYSTORE_PATH_PKCS12), TestKeystoreUtil.KEYSTORE_PASSWORD, TestKeystoreUtil.GetKeystorePath(TestKeystoreUtil.CERTIFICATE_PATH)), FrejaEnvironment.TEST)
                                                        .SetTestModeCustomUrl(CUSTOM_URL).SetTransactionContext(TransactionContext.ORGANISATIONAL).Build <AuthenticationClient>();
            InitiateAuthenticationRequest initAuthenticationRequestWithRequestedAttributesUserInfoOrganisationId = InitiateAuthenticationRequest.CreateCustom()
                                                                                                                   .SetOrganisationId(ORGANISATION_ID)
                                                                                                                   .SetAttributesToReturn(AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.SSN, AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID, AttributeToReturn.ORGANISATION_ID_IDENTIFIER)
                                                                                                                   .Build();

            String initAuthResponseString = jsonService.SerializeToJson(initiateAuthenticationResponse);

            StartMockServer(initAuthenticationRequestWithRequestedAttributesUserInfoOrganisationId, (int)HttpStatusCode.OK, initAuthResponseString);
            String reference = authenticationClient.Initiate(initAuthenticationRequestWithRequestedAttributesUserInfoOrganisationId);

            StopServer();
            Assert.AreEqual(REFERENCE, reference);
        }
        public void InvalidUserInfo_expectError()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetPhoneNumber(CommonTestData.EMAIL).SetRelyingPartyId(CommonTestData.RELYING_PARTY_ID).Build();

            try
            {
                IAuthenticationClient authenticationClient = AuthenticationClient.Create(SslSettings.Create(TestKeystoreUtil.GetKeystorePath(TestKeystoreUtil.KEYSTORE_PATH_PKCS12), TestKeystoreUtil.KEYSTORE_PASSWORD, TestKeystoreUtil.GetKeystorePath(TestKeystoreUtil.CERTIFICATE_PATH)), FrejaEnvironment.TEST)
                                                             .SetHttpService(CommonTestData.HttpServiceMock.Object)
                                                             .SetTransactionContext(TransactionContext.PERSONAL).Build <AuthenticationClient>();

                CommonTestData.HttpServiceMock.Setup(x => x.Send <InitiateAuthenticationResponse>(It.IsAny <Uri>(), It.IsAny <string>(), It.IsAny <InitiateAuthenticationRequest>(), It.IsAny <string>())).Throws(new FrejaEidException(INVALID_USER_INFO_ERROR_MESSAGE, INVALID_USER_INFO_ERROR_CODE));
                authenticationClient.Initiate(initiateAuthenticationRequest);
                Assert.Fail("Test should throw exception!");
            }
            catch (FrejaEidException rpEx)
            {
                CommonTestData.HttpServiceMock.Verify(x => x.Send <InitiateAuthenticationResponse>(new Uri(FrejaEnvironment.TEST + MethodUrl.AUTHENTICATION_INIT), RequestTemplate.INIT_AUTHENTICATION_TEMPLATE, initiateAuthenticationRequest, CommonTestData.RELYING_PARTY_ID));
                Assert.AreEqual(1002, rpEx.ErrorCode);
                Assert.AreEqual("Invalid or missing userInfo.", rpEx.Message);
            }
        }
Esempio n. 12
0
        public InitiateAuthenticationResponse Initiate(InitiateAuthenticationRequest initiateAuthenticationRequest)
        {
            string methodUri = transactionContext == TransactionContext.ORGANISATIONAL ? MethodUrl.ORGANISATION_AUTHENTICATION_INIT : MethodUrl.AUTHENTICATION_INIT;

            return(httpService.Send <InitiateAuthenticationResponse>(GetUri(serverAddress, methodUri), RequestTemplate.INIT_AUTHENTICATION_TEMPLATE, initiateAuthenticationRequest, initiateAuthenticationRequest.RelyingPartyId));
        }
        public void UserInfoTypeInferred_requestedAttributes_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetInferred().Build();

            RelyingPartyNull_success(initiateAuthenticationRequest);
        }
        public void MinRegistrationLevelPlus_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetEmail(CommonTestData.EMAIL).SetAttributesToReturn(AttributeToReturn.CUSTOM_IDENTIFIER).SetMinRegistrationLevel(MinRegistrationLevel.PLUS).Build();

            RelyingPartyNull_success(initiateAuthenticationRequest);
        }
        public void MinRegistrationLevelBasic_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetPhoneNumber(CommonTestData.EMAIL).SetAttributesToReturn(AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.DATE_OF_BIRTH, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID, AttributeToReturn.RELYING_PARTY_USER_ID, AttributeToReturn.SSN, AttributeToReturn.ORGANISATION_ID_IDENTIFIER).SetRelyingPartyId(CommonTestData.RELYING_PARTY_ID).Build();

            PersonalContext_relyingPartyNotNull_success(initiateAuthenticationRequest);
        }
        public void UserInfoTypeOrganisationId__requestedAttributes_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetOrganisationId(CommonTestData.ORGANISATION_ID).SetAttributesToReturn(AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.DATE_OF_BIRTH, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID, AttributeToReturn.RELYING_PARTY_USER_ID, AttributeToReturn.SSN, AttributeToReturn.ORGANISATION_ID_IDENTIFIER).SetRelyingPartyId(CommonTestData.RELYING_PARTY_ID).Build();

            RelyingPartyNotNull_success(initiateAuthenticationRequest, TransactionContext.ORGANISATIONAL);
        }
        public void UserInfoTypeSsn_requestedAttributes_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetSsn(SsnUserInfo.Create(CommonTestData.COUNTRY, CommonTestData.SSN)).SetAttributesToReturn(AttributeToReturn.CUSTOM_IDENTIFIER, AttributeToReturn.BASIC_USER_INFO, AttributeToReturn.DATE_OF_BIRTH, AttributeToReturn.EMAIL_ADDRESS, AttributeToReturn.INTEGRATOR_SPECIFIC_USER_ID, AttributeToReturn.RELYING_PARTY_USER_ID, AttributeToReturn.SSN, AttributeToReturn.ORGANISATION_ID_IDENTIFIER).SetRelyingPartyId(CommonTestData.RELYING_PARTY_ID).Build();

            PersonalContext_relyingPartyNotNull_success(initiateAuthenticationRequest);
        }
        public void UserInfoTypeSsn_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateDefaultWithSsn(SsnUserInfo.Create(CommonTestData.COUNTRY, CommonTestData.SSN));

            RelyingPartyNull_success(initiateAuthenticationRequest);
        }
        public void UserInfoTypeEmail_success()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateDefaultWithEmail(CommonTestData.EMAIL);

            RelyingPartyNull_success(initiateAuthenticationRequest);
        }
Esempio n. 20
0
 public string Initiate(InitiateAuthenticationRequest initiateAuthenticationRequest)
 {
     RequestValidationService.ValidateInitAuthRequest(initiateAuthenticationRequest, authenticationService.GetTransactionContext());
     return(authenticationService.Initiate(initiateAuthenticationRequest).AuthRef);
 }
 private void PersonalContext_relyingPartyNotNull_success(InitiateAuthenticationRequest initiateAuthenticationRequest)
 {
     RelyingPartyNotNull_success(initiateAuthenticationRequest, TransactionContext.PERSONAL);
 }
Esempio n. 22
0
        public void InitAuth_relyingPartyIdEmpty()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetEmail(EMAIL).SetRelyingPartyId("").Build();

            ValidateRequest_expectError("RelyingPartyId cannot be empty.", () => authenticationClient.Initiate(initiateAuthenticationRequest));
        }
Esempio n. 23
0
        public void InitAuth_userInfoNull()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetEmail(null).Build();

            ValidateRequest_expectError("UserInfo cannot be null or empty.", () => authenticationClient.Initiate(initiateAuthenticationRequest));
        }
Esempio n. 24
0
 private void SendInitAuthRequestAndAssertResponse(InitiateAuthenticationRequest validRequest, String initAuthResponseString)
 {
     SendInitAuthRequestAndAssertResponse(validRequest, validRequest, initAuthResponseString);
 }
Esempio n. 25
0
        public void InitAuth_perosnal_setOrgId()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetOrganisationId(IDENTIFIER).SetAttributesToReturn().Build();

            ValidateRequest_expectError("UserInfoType ORG ID cannot be used in personal context.", () => authenticationClient.Initiate(initiateAuthenticationRequest));
        }
Esempio n. 26
0
        public void InitAuth_requestedAttributesEmpty()
        {
            InitiateAuthenticationRequest initiateAuthenticationRequest = InitiateAuthenticationRequest.CreateCustom().SetEmail(EMAIL).SetAttributesToReturn().Build();

            ValidateRequest_expectError("RequestedAttributes cannot be empty.", () => authenticationClient.Initiate(initiateAuthenticationRequest));
        }