Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Ok, replacing my older answers with hopefully a better one.</p> <p>What you describe should work if you have a way to securely share data between your services. For example, if your services share a secret key with the Authorization Service, you can use this key to get the salt.</p> <p>BTW, I don't know enough cryptography to say whether it's safe enough to add secret salt + hash (although seems fine); I'm pretty sure it's safe to <a href="http://en.wikipedia.org/wiki/HMAC" rel="nofollow noreferrer">HMAC</a> with a secret or private key. Rotating keys is a good idea, so you would still have a master key and propagate a new signing key.</p> <p>Other issues with your approach are that (a) you're hardcoding the hashing logic in every service, and (b) the services might want to get more detailed data from the Authorization Service than just a yes/no answer. For example, you may want the Authorization Service to insert into the header that this user belongs to roles A and B but not C.</p> <p>As an alternative, you can let the Authorization Service create a new header with whatever interesting information it has, and sign that block. </p> <p>At this point, we're discussing a Single Sign-On implementation. You already know about <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss" rel="nofollow noreferrer">WS-Security</a> specs. This header I described sounds a lot like a <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security" rel="nofollow noreferrer">SAML</a> assertion. </p> <p><a href="http://www.oracle.com/technology/tech/java/newsletter/articles/wsaudit/ws_audit.html" rel="nofollow noreferrer">Here's an article</a> about using WS-Security and SAML for Single Sign-On.</p> <p>Now, I don't know whether you need all this... there are in-between solutions too. For example, the Authorization Service could sign the original Username block; if you worry about public/private crypto performance, and you're ok sharing secret keys, you could also use a secret key to sign instead of public/private keys.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload