Well, I also said we don't do that here, so I don't actually know how to do
it, just that I think you can. :-)

But seriously, I believe it depends on what you're using for an attribute
repository. And I'm not sure whether it's going to give you what you want:

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role
<https://www.google.com/url?q=https%3A%2F%2Faws.amazon.com%2FSAML%2FAttributes%2FRole%3D&sa=D&sntz=1&usg=AFQjCNGNCbWrdzuCLVKEluOSm_cZNeK0yg>
">
<AttributeValue>ACCOUNT1_AWS_SSO_ROLE,ACCOUNT1_AWS_SSO_IAM</AttributeValue>
<AttributeValue>ACCOUNT2_AWS_SSO_ROLE,ACCOUNT2_AWS_SSO_IAM</AttributeValue>
<AttributeValue>ACCOUNT3_AWS_SSO_ROLE,ACCOUNT3_AWS_SSO_IAM</AttributeValue>
</Attribute>

or if it's going to give you something more like

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role
<https://www.google.com/url?q=https%3A%2F%2Faws.amazon.com%2FSAML%2FAttributes%2FRole%3D&sa=D&sntz=1&usg=AFQjCNGNCbWrdzuCLVKEluOSm_cZNeK0yg>
">
<AttributeValue>ACCOUNT1_AWS_SSO_ROLE,ACCOUNT1_AWS_SSO_IAM,
ACCOUNT2_AWS_SSO_ROLE,ACCOUNT2_AWS_SSO_IAM,ACCOUNT3_AWS_SSO_ROLE,ACCOUNT3_AWS_SSO_IAM
</AttributeValue>
</Attribute>

You might have to write a custom resolver or something (I'm not the one to
help you with that).

Maybe someone else could weigh in here and give William some better
information?

--Dave

--

DAVID A. CURRY, CISSP
*DIRECTOR OF INFORMATION SECURITY*
THE NEW SCHOOL • INFORMATION TECHNOLOGY

71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
+1 212 229-5300 x4728 • [email protected]


On Fri, Nov 16, 2018 at 12:10 PM Willian Gonzales <[email protected]>
wrote:

> David,
>
> What i want is to log in into multiple AWS Accounts using SAML2. I've
> managed to log into only one account. But to log in into multiple accounts
> you have to send the response like this:
>
> <Attribute Name="https://aws.amazon.com/SAML/Attributes/Role
> <https://www.google.com/url?q=https%3A%2F%2Faws.amazon.com%2FSAML%2FAttributes%2FRole%3D&sa=D&sntz=1&usg=AFQjCNGNCbWrdzuCLVKEluOSm_cZNeK0yg>
> ">
> <AttributeValue>ACCOUNT1_AWS_SSO_ROLE,ACCOUNT1_AWS_SSO_IAM</AttributeValue
> > <AttributeValue>ACCOUNT2_AWS_SSO_ROLE,ACCOUNT2_AWS_SSO_IAM</
> AttributeValue> <AttributeValue>ACCOUNT3_AWS_SSO_ROLE,ACCOUNT3_AWS_SSO_IAM
> </AttributeValue> </Attribute>
>
> Right now i'm sending only one value in the attributevalue like this
>
> <Attribute Name="https://aws.amazon.com/SAML/Attributes/Role
> <https://www.google.com/url?q=https%3A%2F%2Faws.amazon.com%2FSAML%2FAttributes%2FRole%3D&sa=D&sntz=1&usg=AFQjCNGNCbWrdzuCLVKEluOSm_cZNeK0yg>
> ">
> <AttributeValue>ACCOUNT1_AWS_SSO_ROLE,ACCOUNT1_AWS_SSO_IAM</AttributeValue
> > </Attribute>
>
> I need to send multiple values so i can choose what account i want to log
> in. You said that there's a way to return a multi-value attribute,  can you
> show me how to return multi-value attribute?
>
> Thank You!
>
>
>
>
> Em sexta-feira, 16 de novembro de 2018 14:39:26 UTC-2, David Curry
> escreveu:
>>
>> The "ReturnMappedAttributeReleasePolicy" is not a method for returning
>> attribute values, it's a method for changing the name of an attribute when
>> you release it.
>>
>> For example, suppose you have an application that wants you to give it an
>> attribute called "LastName". But your Active Directory, of course, keeps
>> the last name in an attribute called "sn". So, in the service registry for
>> that service, you would specify something like this:
>>
>> ...
>>  "attributeReleasePolicy" : {
>>     "@class" :
>> "org.apereo.cas.services.ReturnMappedAttributeReleasePolicy",
>>     "allowedAttributes" : {
>>       "@class" : "java.util.TreeMap",
>>       "sn" : "LastName",
>>
>>       "givenName" : "givenName",
>>
>>       "cn" : "cn",
>>     }
>>   },
>> ...
>>
>>
>> This says you're going to get the values of the cn, givenName, and sn
>> values from your attribute repository (Active Directory or whatever), and
>> send them over to the client. BUT, when you do that, you're going to call
>> them cn, givenName, and LastName instead. So for me, the client might get
>> something like:
>>
>> cn=curryd, givenName=David, LastName=Curry
>>
>>
>> (in whatever format the protocol it's speaking with the CAS server
>> provides that information).
>>
>> So what you're specifying there, is that you're going to send four
>> attributes back to AWS: description, extenstionAttribute1,
>> extensionAttribute2, and extensionAttribute3. But when you send them back,
>> you're going to call them by those 3 URLs and "SessionDuration". So AWS is
>> going to get something like:
>>
>> https://aws.amazon.com/SAML/Attributes/Role=<some value>,
>> https://aws.amazon.com/SAML/Attributes/Role=
>> <https://www.google.com/url?q=https%3A%2F%2Faws.amazon.com%2FSAML%2FAttributes%2FRole%3D&sa=D&sntz=1&usg=AFQjCNGNCbWrdzuCLVKEluOSm_cZNeK0yg><some
>> value>,https://aws.amazon.com/SAML/Attributes/RoleSessionName=<some
>> value>,SessionDuration=<some value>
>>
>>
>> (again, in whatever format the protocol CAS is speaking with AWS
>> specifies) which, I presume, is not what you want. :-)
>>
>> I believe there is a way to release the same attribute value with more
>> than one name, but I don't use it myself, so I don't know the details of
>> what version that functionality was added in, or how it's actually
>> configured.
>>
>> --Dave
>>
>> --
>>
>> DAVID A. CURRY, CISSP
>> *DIRECTOR OF INFORMATION SECURITY*
>> THE NEW SCHOOL • INFORMATION TECHNOLOGY
>>
>> 71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
>> +1 212 229-5300 x4728 • [email protected]
>>
>>
>> On Fri, Nov 16, 2018 at 11:01 AM Willian Gonzales <[email protected]>
>> wrote:
>>
>>> David,
>>>
>>> I'm using Json Service Registry.
>>> You're telling me that the responsible for multi-value attributes is not
>>> the service registry but the repository 'im using? (In my case Active
>>> Directory).
>>>
>>> So, let me show you the example i'm using.
>>>
>>> I need to map a multi-value attribute for the attribute "
>>> https://aws.amazon.com/SAML/Attributes/Role";
>>>
>>> Here an example of my JSON.
>>>
>>> {
>>>   "@class" :
>>> "org.apereo.cas.support.saml.services.SamlRegisteredService",
>>>   "serviceId" : "urn:amazon:webservices",
>>>   "name" : "AWS",
>>>   "id" : 10000003,
>>>   "description" : "CAS AWS",
>>>   "signAssertions" : true,
>>>   "signResponses" : true,
>>>   "metadataLocation" : "file:/etc/cas/saml/sp-aws.xml",
>>>   "attributeReleasePolicy" : {
>>>     "@class" :
>>> "org.apereo.cas.services.ReturnMappedAttributeReleasePolicy",
>>>     "allowedAttributes" : {
>>>       "@class" : "java.util.TreeMap",
>>>       "description" : "https://aws.amazon.com/SAML/Attributes/Role";,
>>>       "extensionAttribute1" : "
>>> https://aws.amazon.com/SAML/Attributes/Role";,
>>>       "extensionAttribute2" : "
>>> https://aws.amazon.com/SAML/Attributes/RoleSessionName";,
>>>       "extensionAttribute3" : "SessionDuration"
>>>     }
>>>   },
>>>   "evaluationOrder" : 1125
>>> }
>>>
>>>
>>> What i need is to use the values of "description" and
>>> "extensionAttribute1" in the same attribute, in this case "
>>> https://aws.amazon.com/SAML/Attributes/Role";
>>>
>>> I've try to use the attribute Repository but still returns only one value
>>>
>>> Here's my .prop file:
>>>
>>> cas.authn.ldap[0].type=AD
>>> cas.authn.ldap[0].ldapUrl=ldap://192.168.12.22:389/
>>> cas.authn.ldap[0].useSsl=false
>>> cas.authn.ldap[0].useStartTls=false
>>> cas.authn.ldap[0].connectTimeout=5000
>>> cas.authn.ldap[0].baseDn=OU=Usuarios HORACIUS,DC=shoracius,DC=com,DC=br
>>> cas.authn.ldap[0].subtreeSearch=true
>>> cas.authn.ldap[0].searchFilter=sAMAccountName={user}
>>> cas.authn.ldap[0][email protected]
>>> cas.authn.ldap[0].bindCredential=Teste@123
>>> cas.authn.ldap[0].dnFormat=%[email protected]
>>> cas.authn.ldap[0].principalAttributeId=sAMAccountName
>>> cas.authn.ldap[0].principalAttributePassword=unicodePwd
>>>
>>> cas.authn.ldap[0].principalAttributeList=givenName,sn,mail,displayName,description,extensionAttribute1,extensionAttribute2,extensionAttribute3
>>> cas.authn.ldap[0].failFast=false
>>> cas.authn.attributeRepository.ldap[0].ldapUrl=ldap://192.168.12.22:389/
>>> cas.authn.attributeRepository.ldap[0][email protected]
>>> cas.authn.attributeRepository.ldap[0].bindCredential=********
>>> cas.authn.attributeRepository.ldap[0].poolPassivator=BIND
>>>
>>> cas.authn.attributeRepository.ldap[0].providerClass=org.ldaptive.provider.unboundid.UnboundIDProvider
>>> cas.authn.attributeRepository.ldap[0].useSsl=false
>>> cas.authn.attributeRepository.ldap[0].useStartTls=false
>>> cas.authn.attributeRepository.ldap[0].name=AD
>>> cas.authn.attributeRepository.expirationTime=30
>>> cas.authn.attributeRepository.expirationTimeUnit=MINUTES
>>> cas.authn.attributeRepository.maximumCacheSize=10000
>>> cas.authn.attributeRepository.merger=MERGE
>>>
>>> cas.authn.attributeRepository.ldap[0].attributes.description=extensionAttribute1
>>> #
>>> cas.authn.attributeRepository.ldap[0].attributes.displayName=displayName
>>> # cas.authn.attributeRepository.ldap[0].attributes.cn=commonName
>>>
>>> Can you help me on this quest.?
>>>
>>> I'm from Brazil, so i'm sorry for my English or anything.
>>>
>>> Thanks in advice and i've appreciate your help.
>>>
>>>
>>> Em sexta-feira, 16 de novembro de 2018 13:26:22 UTC-2, David Curry
>>> escreveu:
>>>>
>>>> Since I'm the only "David" I see in this thread I assume you're asking
>>>> me... but I'm not sure I understand the question. Where are you putting the
>>>> JSON that you're expecting CAS to consume it and then spit it out in a SAML
>>>> response?
>>>>
>>>> Normally, CAS will get the attributes from whatever repositories you
>>>> configure it to use, and take care of putting them into the response
>>>> itself; you don't have to specify any JSON. As far as I know, multi-valued
>>>> attributes should work just fine with that.
>>>>
>>>> The JSON I provided back earlier in this thread was in a service
>>>> registry definition to show how to rename attributes, not provide their
>>>> values.
>>>>
>>>> --Dave
>>>>
>>>> --
>>>>
>>>> DAVID A. CURRY, CISSP
>>>> *DIRECTOR OF INFORMATION SECURITY*
>>>> THE NEW SCHOOL • INFORMATION TECHNOLOGY
>>>>
>>>> 71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
>>>> +1 212 229-5300 x4728 • [email protected]
>>>>
>>>>
>>>> On Fri, Nov 16, 2018 at 10:08 AM Willian Gonzales <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi David!
>>>>>
>>>>> i'm praying that you see my question now because i really need your
>>>>> help.
>>>>> I want to thank you because you really helped me showing the .json
>>>>> configurattion.
>>>>> But i need some help on this.
>>>>>
>>>>> How do i manage to do a multi value attribute on json.
>>>>> I need the SAML response to be like this
>>>>>
>>>>> <Attribute Name="attribute"> <AttributeValue>1</AttributeValue> <
>>>>> AttributeValue>2</AttributeValue> <AttributeValue>3</AttributeValue>
>>>>> </Attribute>
>>>>>
>>>>> Can you help me on this man?
>>>>>
>>>>> Regards
>>>>>
>>>>> Em quarta-feira, 16 de maio de 2018 11:49:10 UTC-3, David Curry
>>>>> escreveu:
>>>>>>
>>>>>>
>>>>>>
>>>>>> Here's a JSON definition for an Apache HTTPD with the Shibboleth
>>>>>> mod_shib/shibd plug-in:
>>>>>>
>>>>>> {
>>>>>>   "@class" :
>>>>>> "org.apereo.cas.support.saml.services.SamlRegisteredService",
>>>>>>   "serviceId" : "https://casdev-samlsp.newschool.edu/shibboleth";,
>>>>>>   "name" : "Apache Secured By SAML",
>>>>>>   "id" : 1509030300,
>>>>>>   "description" : "CAS development Apache mod_shib/shibd server with
>>>>>> username/password protection",
>>>>>>   "metadataLocation" : "
>>>>>> https://casdev-samlsp.newschool.edu/Shibboleth.sso/Metadata";,
>>>>>>   "attributeReleasePolicy" : {
>>>>>>     "@class" :
>>>>>> "org.apereo.cas.services.ReturnMappedAttributeReleasePolicy",
>>>>>>     "allowedAttributes" : {
>>>>>>       "@class" : "java.util.TreeMap",
>>>>>>       "cn" : "urn:oid:2.5.4.3",
>>>>>>       "displayName" : "urn:oid:2.16.840.1.113730.3.1.241",
>>>>>>       "givenName" : "urn:oid:2.5.4.42",
>>>>>>       "mail" : "urn:oid:0.9.2342.19200300.100.1.3",
>>>>>>       "role" : "urn:newschool:attribute-def:role",
>>>>>>       "sn" : "urn:oid:2.5.4.4",
>>>>>>       "uid" : "urn:oid:0.9.2342.19200300.100.1.1",
>>>>>>       "UDC_IDENTIFIER": "urn:newschool:attribute-def:UDC_IDENTIFIER"
>>>>>>     }
>>>>>>   },
>>>>>>   "evaluationOrder" : 1125
>>>>>> }
>>>>>>
>>>>>> But if your SP doesn't care about the funky notation, you can just do
>>>>>> it the "regular" way... here's a definition for a test SP created via 
>>>>>> RSA's
>>>>>> free IAMShowcase site (this is a cut-down copy of the entire registry 
>>>>>> entry
>>>>>> to show the part you're interested in):
>>>>>>
>>>>>> {
>>>>>>     "serviceId": "IAMShowcase",
>>>>>>     "name": "RSA SAML Test Service Provider",
>>>>>>     "theme": null,
>>>>>>     "informationUrl": null,
>>>>>>     "privacyUrl": null,
>>>>>>     "id": 1202469081,
>>>>>>     "description": "The URL for the SP that talks to this service is
>>>>>> https://sptest.iamshowcase.com/ixs?idp=<snip>",
>>>>>>     "evaluationOrder": -1,
>>>>>>     "attributeReleasePolicy": {
>>>>>>         "@class":
>>>>>> "org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy",
>>>>>>         "allowedAttributes": [
>>>>>>             "displayName",
>>>>>>             "givenName",
>>>>>>             "sn",
>>>>>>             "uid"
>>>>>>         ]
>>>>>>     }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> --Dave
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> DAVID A. CURRY, CISSP
>>>>>> *DIRECTOR OF INFORMATION SECURITY*
>>>>>> INFORMATION TECHNOLOGY
>>>>>>
>>>>>> 71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
>>>>>> +1 212 229-5300 x4728 • [email protected]
>>>>>>
>>>>>> [image: The New School]
>>>>>>
>>>>>> On Wed, May 16, 2018 at 9:07 AM, John D Giotta <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Do you have an example of this?
>>>>>>>
>>>>>>> --
>>>>>>> - Website: https://apereo.github.io/cas
>>>>>>> - Gitter Chatroom: https://gitter.im/apereo/cas
>>>>>>> - List Guidelines: https://goo.gl/1VRrw7
>>>>>>> - Contributions: https://goo.gl/mh7qDG
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "CAS Community" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/3a71f33b-cc77-4c2a-be89-b712229a227a%40apereo.org
>>>>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/3a71f33b-cc77-4c2a-be89-b712229a227a%40apereo.org?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>
>>>>>> --
>>>>> - Website: https://apereo.github.io/cas
>>>>> - Gitter Chatroom: https://gitter.im/apereo/cas
>>>>> - List Guidelines: https://goo.gl/1VRrw7
>>>>> - Contributions: https://goo.gl/mh7qDG
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "CAS Community" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/b357bdfc-3d90-471a-88df-fb1507cd59fb%40apereo.org
>>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/b357bdfc-3d90-471a-88df-fb1507cd59fb%40apereo.org?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>> - Website: https://apereo.github.io/cas
>>> - Gitter Chatroom: https://gitter.im/apereo/cas
>>> - List Guidelines: https://goo.gl/1VRrw7
>>> - Contributions: https://goo.gl/mh7qDG
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "CAS Community" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/cef00c55-1c57-49a2-a3b9-0de76dcbfcd1%40apereo.org
>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/cef00c55-1c57-49a2-a3b9-0de76dcbfcd1%40apereo.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> - Website: https://apereo.github.io/cas
> - Gitter Chatroom: https://gitter.im/apereo/cas
> - List Guidelines: https://goo.gl/1VRrw7
> - Contributions: https://goo.gl/mh7qDG
> ---
> You received this message because you are subscribed to the Google Groups
> "CAS Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/538f75ff-5130-4cdf-8858-211fa6ae4214%40apereo.org
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/538f75ff-5130-4cdf-8858-211fa6ae4214%40apereo.org?utm_medium=email&utm_source=footer>
> .
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CA%2Bd9XAOXAMQ5oXjnSeo5HkYfGCcPkYgoJZd-hZFgbFC9skBxTA%40mail.gmail.com.

Reply via email to