diff --git a/authorize/evaluator/opa/policy/authz.rego b/authorize/evaluator/opa/policy/authz.rego index 1d4e8df87..490a68bab 100644 --- a/authorize/evaluator/opa/policy/authz.rego +++ b/authorize/evaluator/opa/policy/authz.rego @@ -41,11 +41,12 @@ allow { count(deny)==0 } -# allow by domain +# allow by domain allow { some route input.host = route_policies[route].source - allowed_user_domain(token.payload.email) + some domain + email_in_domain(token.payload.email, route_policies[route].allowed_domains[domain]) token.valid count(deny)==0 } @@ -54,18 +55,18 @@ allow { allow { some route input.host = route_policies[route].source - allowed_user_domain(token.payload.impersonate_email) + some domain + email_in_domain(token.payload.impersonate_email, route_policies[route].allowed_domains[domain]) token.valid count(deny)==0 } -allowed_user_domain(email){ +email_in_domain(email, domain) { x := split(email, "@") - count(x)=2 - x[1] == route_policies[route].allowed_domains[_] + count(x) == 2 + x[1] == domain } - default expired = false expired { @@ -115,4 +116,4 @@ signed_jwt:=io.jwt.encode_sign({"alg": "ES256"}, token.payload, data.signing_key element_in_list(list, elem) { list[_] = elem -} \ No newline at end of file +} diff --git a/authorize/evaluator/opa/policy/statik.go b/authorize/evaluator/opa/policy/statik.go index 870ca7d77..acf920f56 100644 --- a/authorize/evaluator/opa/policy/statik.go +++ b/authorize/evaluator/opa/policy/statik.go @@ -10,7 +10,7 @@ import ( const Rego = "rego" // static asset namespace func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\xb5\xbeuP\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x00authz.regoUT\x05\x00\x01\x06\xa9v^\xbcV_o\xa38\x10\x7f\xf6|\x8a\x91\xabJ\xa0\xe3\xe8\xb5\xd2\x9dth\x91\xf6e?\xc1>F\x11r\xf1$q\x0b6\xc2\xa6I\x16\xe5\xbb\xaflH\xa0iWmw7\xfb\xd2\x861\xf3\x9b\xdf\x1f\x83iD\xf9(\xd6\x84\x8d\xa9\xa9U]\x9d\x8a\xcem\xbe\x01\xa8\xba1\xadC)\x9cH[\xd39*\x1aS\xa9R\x91}\xb6d7\xa2%Y<\xd2\x1e@\xd2Jt\x95CQUf\x8b9\xaeDe \xe0j,\xdc\xef\x91j\xa1*\x18.{`\xd6\xd4\x84\x01\x1c\x98\xd2M\xe7\xd2\x8d\xb1\x0es|>p\x11.\x97\xa95][\x120g\x1eI\xa7\x8d\xd8WF\xc84`\xfe\xb0'\xcc\"Yt\x96Z\xbb(\x96\xc7\xee'Q) \xac4\x9dv\x91$\xbd\x8f\xf3\xfc\x1f8Ll\xd7\xad\xe9\x9a\xdfL5`z\x16o\xd2=\xdd\xf9n\xbe\xf7{TuC\xad5Z8\xba\x88\xd33\xfc\xe2B\xae\x9f\xa9\xb8D\x08s\x15\x17\x0eD\x9aZ(\x8d\xbf,`ng1\x80F\xaf<\x04\xf1G\xb8\xcdm\x1e \xff\x00\xcd\x17;\xe8m\xca\xaf\x81\x0e\xad=\xb0\x1df9\xda\xa6Rn\xa8%\xc8?\xf3\xf8\x08\xb3\x8b\xf3;`\xbb\xc5\xed\x12\xf3\xb7\xf2\x1d\x90C\xc0\x07\x98^e\xb4kTKrz\x99\x1d\x0b=0m\xb6\x85\xa5\xd2hi\xb3\xdc\xa9\x9aR_\xd16\x8aon\xe9\x7f`\x8b\x0d Im\x82\xa3\xfa\x04\x8b\xa5\xe7\xabL\xfa\xb0u\xa9\xa4\xd2H\x8a\x06\x7f\xbd\xba\x18\xd8)\xce]\x83\x9fp6\xc0\x93\xf2\xae,x\xb0\x0b\x95=Q\x8bh\xd7\xc4|\xd9\x03\x1b+\xa7{m\xd3*\xedV\xd1\xd8\xb3\x11\x16\xef\x85D\xd1IE\xba$\x8cD'\xe3\x0c\xaf-j\xe3Pi\xbc\xfe\xeb\x89'\x8b)\xf1\xe4\xc8Gtr\x19\xfb\x11?\xa1\xc9cSE5iW(]T\xca\xbah\x86\x9bL\xe3\xe2\xf9\x16\xf5\xdd^\xa6\x90\xf5|k\x9e#\x85C(\xdcc\x13\xfc\xf83\xc1J\xa3\x9d\x0f\xfe\xc8\xb9\xad\x12\x9e\x1e\xcf\xc2\x9b\x00\xcc\x03/\xb8B\xdf\x85\xda\xe8\xbfC90\xb4\xb8jM\x8d\xa2,\xc9*\xbd\x1e\xd8\x0e[\xcd\x8e\x81\x1d\x85x\x1f\x06\xbce\xff\xba+\xef\xd0\xf2n\xbaC\xe49\xf6|\x84\xe0\xd9\x94\x19\x0ff\xf0\x0c\xc3\xff\x83\xf7u\x11~&x\x96\xef\xcbp\x8b'j\xd5j\x1f\x01cS\xcc\x89\x87`\x8c[*[r<\xc3\xe9\xb3 \x0b\xa2\xf3\xe3f;\x0b\x18;\x00\x0bT=@\x96?\xd7\xebk\x10D\x9f\xaf\x0c\x07\xdb\xf0:>_\x1b\xaa`\xd5Z\x93,\x1e\xb6.\xcbG\xee\xa4\x03w\xbf\x12\xf5\\Tk\x9e!\xff\xf2\xf5\xee\xdf\xff\xf8\xe1\xcc\xebd\xfc\xb0Qk\xad\xf4\xdaK\x88\x01\xe0<+\xff' \xc6\xd8\x03\xa2\xbf\x1e\xce\x11_\x83\xc3\xf7\x00\x00\x00\xff\xffPK\x07\x08\xdb\xe3\xb1\x8d\xbd\x02\x00\x00W \x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\xb5\xbeuP\xdb\xe3\xb1\x8d\xbd\x02\x00\x00W \x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00authz.regoUT\x05\x00\x01\x06\xa9v^PK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00A\x00\x00\x00\xfe\x02\x00\x00\x00\x00" + data := "PK\x03\x04\x14\x00\x08\x00\x08\x00o\xa5\x94P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x00authz.regoUT\x05\x00\x01s \x9e^\xbcV\xd1n\xac6\x10}\xb6\xbfb\xe4(\x12\xa8\x944\x91Z\xa9\xa8H}\xe9\x17\xf4\x11!\xe4\xe0\xd9]'`#l\xb2\xbb]\xed\xbfW\xb6a!$U\xd2{\xb3\xf7e\x17\xcf0g\xce\x99\x19\xdbt\xbc~\xe6[\x84N\xb7\xd8\xcb\xa1M\xf9`w\xffP*\xdbN\xf7\x16\x04\xb7<\xed\xf5`\xb1\xeat#k\x89\xe6\x95\xcb\xecx\x8f\xa2z\xc6#\xa5\x027|h,\xf0\xa6\xd1{\xc8a\xc3\x1b\x83\x94\xde\x8c\x86\xc7#`\xcbeC\xc3\xf2D\x89\xd1-\x82\x07\xa7D\xaan\xb0\xe9N\x1b\x0b9\xbcNX\xf8e\x99\x1a=\xf45Rb\xf53\xaa\xb4\xe3\xc7Fs\x91z\xcc\xff\x8c\xf1\xb9PT\x83\xc1\xde\x14U9E\xbf\xf0F\nJj=(\x1b T\xc78\xcf\x7f\xa1\xe7\x99\xed\xb6\xd7C\xf7\xc5T=\xa6c\xf1!\xdd\xcb\x9b\x9f\xe6\xfbx\x04\xd9v\xd8\x1b\xad\xb8\xc5\xabTz\x81_]\xa9\xea+\x15\xd7h\xc2R\xc5\x95\x1b\"t\xcb\xa5\xfan\xfe>l\xc4\"\xbe\xf0\x95TU0D\xefl\x86\xe4\x03-!\xd2\x14\xe1\xbf\x8c\xff\x8f\xa4ew~\xbc\xbc7\x13\xf8\xe5R\xd7\xf9\xc7,a\x15;\x95\x07\xc8r0]#\xed\xe4d\x7f\xb2x\xc2:\xc4\x90\xe7\xf0@\xc9\xa1\xb8/\xdd\xe3(\xec<\x1f\x8fx\xe8d\x8fb> '\xc3\x89\x12\xa5\xf7\x95\xc1Z+a\xb2\xdc\xca\x16SgQ&\x8a\xef\xee\xf1wJ\x8a\x1dr\x81}\x02cE\x12\xa8J\xc7G\xea\xf4ioS\x81\xb5\x16\x18\x85\xe2\xbb\xcd\x17Sr\x19\x8dC\x07\x7f\xc0\"A\xe0\xa4\x8e\x05\xf35\x01i.\xd4\"